Designed for a first Computer Science (CS1) Java course, JAVA PROGRAMMING: FROM PROBLEM ANALYSIS TO PROGRAM DESIGN 5e will motivate readers while building a cornerstone for the Computer Science curriculum. With a focus on readers' learning, this text approaches programming using the latest version o
Java Programming, 5th Edition
โ Scribed by Joyce Farrell
- Publisher
- Course Technology
- Year
- 2009
- Tongue
- English
- Leaves
- 908
- Edition
- 5
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
Java Programming, Fifth Edition provides the beginning programmer with a guide to developing applications using the Java programming language. Java is popular among professional programmers because it can be used to build visually interesting GUI and Web-based applications. Java also provides an excellent environment for the beginning programmer - a student quickly can build useful programs while learning the basics of structured and object-oriented programming techniques.
โฆ Table of Contents
Front Cover......Page 1
Title Page......Page 2
Copyright......Page 3
CONTENTS......Page 6
PREFACE......Page 20
READ THIS BEFORE YOU BEGIN......Page 26
CHAPTER 1 CREATING YOUR FIRST JAVA CLASSES......Page 28
LEARNING ABOUT PROGRAMMING......Page 29
Object- Oriented Programming......Page 31
Understanding Objects, Classes, and Encapsulation......Page 32
Understanding Inheritance and Polymorphism......Page 34
LEARNING ABOUT JAVA......Page 35
Java Program Types......Page 36
Understanding the Statement That Prints the Output......Page 37
Understanding the First Class......Page 38
Understanding the main() Method......Page 41
ADDING COMMENTS TO A JAVA CLASS......Page 43
Compiling a Java Class......Page 45
Modifying a Java Class......Page 46
CREATING A JAVA APPLICATION USING GUI OUTPUT......Page 48
CORRECTING ERRORS AND FINDING HELP......Page 50
Your First Application......Page 53
Adding Comments to a Class......Page 54
Modifying a Class......Page 55
Creating a Dialog Box......Page 56
DON'T DO IT......Page 57
KEY TERMS......Page 58
CHAPTER SUMMARY......Page 61
REVIEW QUESTIONS......Page 62
EXERCISES......Page 64
GAME ZONE......Page 66
TOUGH QUESTIONS......Page 67
UP FOR DISCUSSION......Page 68
CHAPTER 2 USING DATA WITHIN A PROGRAM......Page 70
USING CONSTANTS AND VARIABLES......Page 71
Declaring Variables......Page 72
Declaring Named Constants......Page 73
LEARNING ABOUT THE int DATA TYPE......Page 75
DISPLAYING DATA......Page 77
WRITING ARITHMETIC STATEMENTS......Page 78
Writing Arithmetic Statements Efficiently......Page 80
USING THE BOOLEAN DATA TYPE......Page 81
LEARNING ABOUT FLOATING-POINT DATA TYPES......Page 82
UNDERSTANDING NUMERIC-TYPE CONVERSION......Page 83
WORKING WITH THE char DATA TYPE......Page 85
USING THE Scanner CLASS FOR KEYBOARD INPUT......Page 88
Pitfall: Using nextLine() Following One of the Other Scanner Input Methods......Page 90
Using Input Dialog Boxes......Page 93
Using Confirm Dialog Boxes......Page 97
Working with Numeric Values......Page 99
Accepting User Data......Page 100
Performing Arithmetic......Page 101
Experimenting with Java Programs......Page 102
DON'T DO IT......Page 103
KEY TERMS......Page 104
CHAPTER SUMMARY......Page 107
REVIEW QUESTIONS......Page 108
EXERCISES......Page 110
TOUGH QUESTIONS......Page 113
UP FOR DISCUSSION......Page 114
CHAPTER 3 USING METHODS, CLASSES, AND OBJECTS......Page 116
CREATING METHODS WITH ZERO, ONE, AND MULTIPLE PARAMETERS......Page 117
Creating Methods That Require a Single Parameter......Page 121
Creating Methods That Require Multiple Parameters......Page 124
CREATING METHODS THAT RETURN VALUES......Page 126
Calling a Method from Another Method......Page 128
LEARNING ABOUT CLASS CONCEPTS......Page 129
CREATING A CLASS......Page 131
CREATING INSTANCE METHODS IN A CLASS......Page 133
DECLARING OBJECTS AND USING THEIR METHODS......Page 136
Understanding Data Hiding......Page 137
ORGANIZING CLASSES......Page 139
AN INTRODUCTION TO USING CONSTRUCTORS......Page 141
UNDERSTANDING THAT CLASSES ARE DATA TYPES......Page 143
Creating a Static Method That Requires No Arguments and Returns No Values......Page 145
Calling a Static Method from Another Class......Page 146
Creating a Static Method That Accepts Arguments and Returns Values......Page 147
Creating a Class That Contains Instance Fields and Methods......Page 149
Creating a Class That Instantiates Objects of Another Class......Page 150
Creating a More Complete Class......Page 151
KEY TERMS......Page 152
CHAPTER SUMMARY......Page 154
REVIEW QUESTIONS......Page 155
EXERCISES......Page 158
GAME ZONE......Page 160
UP FOR DISCUSSION......Page 161
CHAPTER 4 MORE OBJECT CONCEPTS......Page 162
UNDERSTANDING BLOCKS AND SCOPE......Page 163
OVERLOADING A METHOD......Page 169
LEARNING ABOUT AMBIGUITY......Page 171
SENDING ARGUMENTS TO CONSTRUCTORS......Page 174
OVERLOADING CONSTRUCTORS......Page 175
LEARNING ABOUT THE this REFERENCE......Page 176
Using the this Reference to Make Overloaded Constructors More Efficient......Page 179
USING static VARIABLES......Page 181
USING CONSTANT FIELDS......Page 183
USING AUTOMATICALLY IMPORTED, PREWRITTEN CONSTANTS AND METHODS......Page 184
USING AN EXPLICITLY IMPORTED PREWRITTEN CLASS AND ITS METHODS......Page 187
UNDERSTANDING COMPOSITION......Page 191
A BRIEF LOOK AT NESTED AND INNER CLASSES......Page 193
Demonstrating Scope......Page 195
Overloading Methods......Page 197
Creating a Constructor That Requires an Argument......Page 198
Using an Explicitly Imported Prewritten Class......Page 199
Creating an Interactive Application with a Timer......Page 201
KEY TERMS......Page 203
CHAPTER SUMMARY......Page 204
REVIEW QUESTIONS......Page 205
EXERCISES......Page 208
GAME ZONE......Page 211
UP FOR DISCUSSION......Page 212
CHAPTER 5 MAKING DECISIONS......Page 214
UNDERSTANDING DECISION MAKING......Page 215
MAKING DECISIONS WITH THE if AND if ... else STRUCTURES......Page 217
Pitfall: Misplacing a Semicolon in an if Statement......Page 218
Pitfall: Attempting to Compare Objects Using the Relational Operators......Page 219
The if...else Structure......Page 220
USING MULTIPLE STATEMENTS IN AN if OR if ... else STRUCTURE......Page 221
NESTING if AND if...else STATEMENTS......Page 224
USING LOGICAL AND and OR OPERATORS......Page 226
MAKING ACCURATE AND EFFICIENT DECISIONS......Page 229
Using AND and OR Appropriately......Page 232
USING THE switch STATEMENT......Page 233
USING THE CONDITIONAL AND NOT OPERATORS......Page 236
Using the NOT Operator......Page 237
UNDERSTANDING PRECEDENCE......Page 238
Using an if...else......Page 240
Creating an Event Class to Use in a Decision-Making Application......Page 242
Writing an Application that Uses the Event class......Page 243
Using the switch Statement......Page 245
DON'T DO IT......Page 246
KEY TERMS......Page 247
REVIEW QUESTIONS......Page 248
EXERCISES......Page 251
GAME ZONE......Page 256
TOUGH QUESTIONS......Page 258
UP FOR DISCUSSION......Page 259
CHAPTER 6 LOOPING......Page 260
LEARNING ABOUT THE LOOP STRUCTURE......Page 261
USING A while LOOP TO CREATE A DEFINITE LOOP......Page 262
USING A while LOOP TO CREATE AN INDEFINITE LOOP......Page 266
USING SHORTCUT ARITHMETIC OPERATORS......Page 270
USING A for LOOP......Page 273
LEARNING HOW AND WHEN TO USE A do...while LOOP......Page 275
LEARNING ABOUT NESTED LOOPS......Page 277
IMPROVING LOOP PERFORMANCE......Page 279
Considering the Order of Evaluation of Short-Circuit Operators......Page 280
Comparing to Zero......Page 281
Employing Loop Fusion......Page 282
Writing a Loop to Validate Data Entries......Page 283
Working with Prefix and Postfix Increment Operators......Page 284
Working with Definite Loops......Page 286
Working with Nested Loops......Page 287
DON'T DO IT......Page 288
KEY TERMS......Page 289
CHAPTER SUMMARY......Page 290
REVIEW QUESTIONS......Page 291
EXERCISES......Page 294
GAME ZONE......Page 296
TOUGH QUESTIONS......Page 297
UP FOR DISCUSSION......Page 298
CHAPTER 7 CHARACTERS, STRINGS, AND THE STRINGBUILDER......Page 300
IDENTIFYING PROBLEMS THAT CAN OCCUR WHEN YOU MANIPULATE STRING DATA......Page 301
MANIPULATING CHARACTERS......Page 303
DECLARING A String OBJECT......Page 305
COMPARING String VALUES......Page 306
USING OTHER String METHODS......Page 310
CONVERTING Strings TO NUMBERS......Page 313
LEARNING ABOUT THE StringBuilder AND StringBuffer CLASSES......Page 315
Using String Class Methods......Page 320
Converting a String to an Integer......Page 322
Using StringBuilder Methods......Page 323
KEY TERMS......Page 324
CHAPTER SUMMARY......Page 326
REVIEW QUESTIONS......Page 327
EXERCISES......Page 329
GAME ZONE......Page 332
TOUGH QUESTIONS......Page 334
UP FOR DISCUSSION......Page 335
CHAPTER 8 ARRAYS......Page 336
DECLARING AND INITIALIZING AN ARRAY......Page 337
Initializing an Array......Page 339
USING SUBSCRIPTS WITH AN ARRAY......Page 340
DECLARING AN ARRAY OF OBJECTS......Page 343
SEARCHING AN ARRAY FOR AN EXACT MATCH......Page 345
SEARCHING AN ARRAY FOR A RANGE MATCH......Page 348
PASSING ARRAYS TO AND RETURNING ARRAYS FROM METHODS......Page 350
MANIPULATING ARRAYS OF Strings......Page 353
SORTING ARRAY ELEMENTS......Page 355
Sorting Arrays of Objects......Page 359
USING TWO-DIMENSIONAL AND MULTIDIMENSIONAL ARRAYS......Page 361
Using Multidimensional Arrays......Page 363
USING THE Arrays CLASS......Page 364
USING THE ArrayList CLASS......Page 368
Understanding the Limitations of the ArrayList Class......Page 370
Creating and Populating an Array......Page 371
Initializing an Array......Page 372
Creating Parallel Arrays to Eliminate Nested if Statements......Page 373
Creating an Application with an Array of Objects......Page 374
Creating an Interactive Application That Creates an Array of Objects......Page 375
Passing an Array to a Method......Page 377
Using Arrays Class Methods......Page 378
DON'T DO IT......Page 380
KEY TERMS......Page 381
CHAPTER SUMMARY......Page 382
REVIEW QUESTIONS......Page 383
EXERCISES......Page 386
GAME ZONE......Page 390
UP FOR DISCUSSION......Page 394
CHAPTER 9 INTRODUCTION TO INHERITANCE......Page 396
LEARNING ABOUT THE CONCEPT OF INHERITANCE......Page 397
EXTENDING CLASSES......Page 401
OVERRIDING SUPERCLASS METHODS......Page 403
UNDERSTANDING HOW CONSTRUCTORS ARE CALLED DURING INHERITANCE......Page 404
USING SUPERCLASS CONSTRUCTORS THAT REQUIRE ARGUMENTS......Page 406
ACCESSING SUPERCLASS METHODS......Page 407
LEARNING ABOUT INFORMATION HIDING......Page 409
A Subclass Cannot Override static Methods in Its Superclass......Page 412
A Subclass Cannot Override final Methods in Its Superclass......Page 415
A Subclass Cannot Override Methods in a final Superclass......Page 417
Creating a Superclass and an Application to Use It......Page 418
Creating a Subclass and an Application to Use It......Page 420
Creating a Subclass Method That Overrides a Superclass Method......Page 422
Understanding the Role of Constructors in Inheritance......Page 424
Inheritance When the Superclass Requires Constructor Arguments......Page 425
Accessing an Overridden Superclass Method from Within a Subclass......Page 428
KEY TERMS......Page 429
CHAPTER SUMMARY......Page 430
REVIEW QUESTIONS......Page 431
EXERCISES......Page 434
GAME ZONE......Page 437
TOUGH QUESTIONS......Page 438
UP FOR DISCUSSION......Page 439
CHAPTER 10 ADVANCED INHERITANCE CONCEPTS......Page 440
CREATING AND USING ABSTRACT CLASSES......Page 441
USING DYNAMIC METHOD BINDING......Page 445
Using a Superclass as a Method Parameter Type......Page 446
CREATING ARRAYS OF SUBCLASS OBJECTS......Page 447
USING THE Object CLASS AND ITS METHODS......Page 449
Using the toString() Method......Page 450
Using the equals() Method......Page 452
USING INHERITANCE TO ACHIEVE GOOD SOFTWARE DESIGN......Page 455
CREATING AND USING INTERFACES......Page 456
Creating Interfaces to Store Related Constants......Page 461
CREATING AND USING PACKAGES......Page 462
Creating an Abstract Class......Page 464
Extending an Abstract Class......Page 465
Extending an Abstract Class with a Second Subclass......Page 467
Instantiating Objects from Subclasses......Page 468
Using Object References......Page 469
Overriding the Object Class equals() Method......Page 471
Eliminating Duplicate User Entries......Page 472
Creating a Package......Page 473
KEY TERMS......Page 476
CHAPTER SUMMARY......Page 477
REVIEW QUESTIONS......Page 478
EXERCISES......Page 481
DEBUGGING EXERCISES......Page 484
UP FOR DISCUSSION......Page 485
CHAPTER 11 EXCEPTION HANDLING......Page 488
LEARNING ABOUT EXCEPTIONS......Page 489
TRYING CODE AND CATCHING Exceptions......Page 494
THROWING AND CATCHING MULTIPLE Exceptions......Page 498
USING THE Finally BLOCK......Page 503
UNDERSTANDING THE ADVANTAGES OF EXCEPTION HANDLING......Page 505
SPECIFYING THE Exceptions A METHOD CAN THROW......Page 507
TRACING Exceptions THROUGH THE CALL STACK......Page 513
CREATING YOUR OWN Exceptions......Page 517
USING ASSERTIONS......Page 520
Catching an Exception and Using getMessage()......Page 525
Adding NumberFormatException Handling Capabilities to an Application......Page 527
Creating a Class That Automatically Throws Exceptions......Page 528
Creating a Class That Passes on an Exception......Page 529
Creating an Application That Can Catch Exceptions......Page 531
Extending a Class That Throws Exceptions......Page 533
Using the printStackTrace() Method......Page 534
Using an Exception You Created......Page 536
KEY TERMS......Page 540
CHAPTER SUMMARY......Page 541
REVIEW QUESTIONS......Page 542
EXERCISES......Page 545
GAME ZONE......Page 549
UP FOR DISCUSSION......Page 550
CHAPTER 12 FILE INPUT AND OUTPUT......Page 552
UNDERSTANDING COMPUTER FILES......Page 553
USING THE File CLASS......Page 554
UNDERSTANDING DATA FILE ORGANIZATION AND STREAMS......Page 557
USING STREAMS......Page 559
WRITING TO AND READING FROM A FILE......Page 563
Reading from a File......Page 565
WRITING FORMATTED FILE DATA......Page 567
READING FORMATTED FILE DATA......Page 570
USING A VARIABLE FILENAME......Page 572
CREATING AND USING RANDOM ACCESS FILES......Page 575
WRITING RECORDS TO A RANDOM ACCESS FILE......Page 578
Accessing a Random Access File Sequentially......Page 583
Accessing a Random Access File Randomly......Page 584
READING AND WRITING OBJECTS TO AND FROM FILES......Page 586
Using the File Class to Examine File Status......Page 590
Comparing Two File Dates......Page 591
Using InputStream and OutputStream Objects......Page 592
Reading Data from a File......Page 595
Creating a Class to Use in a File of Objects......Page 596
Creating a Program that Writes Event Objects to a File......Page 598
Creating a Program that Accesses Stored Event Object Data......Page 599
KEY TERMS......Page 603
CHAPTER SUMMARY......Page 605
REVIEW QUESTIONS......Page 606
EXERCISES......Page 608
TOUGH QUESTIONS......Page 611
UP FOR DISCUSSION......Page 612
CHAPTER 13 INTRODUCTION TO SWING COMPONENTS......Page 614
UNDERSTANDING Swing COMPONENTS......Page 615
USING THE JFrame CLASS......Page 616
Customizing a JFrame's Appearance......Page 620
USING A JLabel......Page 621
Changing a JLabel's Font......Page 623
USING A LAYOUT MANAGER......Page 625
EXTENDING THE JFrame CLASS......Page 627
ADDING JTextFields, JBUTTONS, AND TOOL TIPS TO A JFrame......Page 629
Adding JButtons......Page 631
Using Tool Tips......Page 633
Preparing Your Class to Accept Event Messages......Page 634
Telling Your Class How to Respond to Events......Page 635
UNDERSTANDING Swing EVENT LISTENERS......Page 638
USING THE JCheckBox CLASS......Page 641
USING THE ButtonGroup CLASS......Page 645
USING THE JComboBox CLASS......Page 646
Creating a JFrame......Page 648
Adding Components to a JFrame......Page 650
Adding Functionality to a JButton and a JTextField......Page 652
Distinguishing Event Sources......Page 653
Including JCheckBoxes in an Application......Page 654
DON'T DO IT......Page 657
KEY TERMS......Page 658
CHAPTER SUMMARY......Page 659
REVIEW QUESTIONS......Page 661
EXERCISES......Page 664
DEBUGGING EXERCISES......Page 665
GAME ZONE......Page 666
UP FOR DISCUSSION......Page 667
CHAPTER 14 ADVANCED GUI TOPICS......Page 668
UNDERSTANDING THE CONTENT PANE......Page 669
USING COLOR......Page 674
LEARNING MORE ABOUT LAYOUT MANAGERS......Page 675
Using BorderLayout......Page 676
Using FlowLayout......Page 678
Using GridLayout......Page 680
Using CardLayout......Page 682
Using Advanced Layout Managers......Page 683
USING THE JPanel CLASS......Page 684
CREATING JScrollPanes......Page 691
A CLOSER LOOK AT EVENTS AND EVENT HANDLING......Page 693
An Event-Handling Example: KeyListener......Page 696
USING AWTEvent CLASS METHODS......Page 698
Understanding x- and y-Coordinates......Page 700
HANDLING MOUSE EVENTS......Page 701
USING MENUS......Page 707
Using JCheckBoxMenuItem and JRadioButtonMenuItem Objects......Page 710
Using addSeparator()......Page 711
Using setMnemonic()......Page 712
Using BorderLayout......Page 713
Using Fewer than Five Components with the BorderLayout Manager......Page 714
Using FlowLayout......Page 715
Using GridLayout......Page 716
Viewing All the Cards in CardLayout......Page 717
Using a Menu Bar and JPanels......Page 718
KEY TERMS......Page 723
CHAPTER SUMMARY......Page 725
REVIEW QUESTIONS......Page 726
EXERCISES......Page 729
DEBUGGING EXERCISES......Page 730
GAME ZONE......Page 731
UP FOR DISCUSSION......Page 735
CHAPTER 15 GRAPHICS......Page 736
LEARNING ABOUT THE paint() AND repaint() METHODS......Page 737
Using the setLocation() Method......Page 739
USING THE drawString() METHOD......Page 741
Using the setFont() and setColor() Methods......Page 742
Using Color......Page 743
CREATING Graphics AND Graphics2D OBJECTS......Page 744
DRAWING LINES AND SHAPES......Page 745
Drawing Ovals......Page 747
Drawing Arcs......Page 748
Creating Shadowed Rectangles......Page 749
Creating Polygons......Page 750
Copying an Area......Page 752
LEARNING MORE ABOUT FONTS AND METHODS YOU CAN USE WITH THEM......Page 753
Discovering Screen Statistics Using the Toolkit Class......Page 755
Discovering Font Statistics......Page 756
Specifying the Rendering Attributes......Page 758
Setting a Drawing Stroke......Page 760
Creating Objects to Draw......Page 761
Using the drawString() Method......Page 763
Using Fonts and Colors......Page 764
Creating Your Own Graphics Object......Page 765
Examining Screen Coordinates......Page 766
Creating a Drawing......Page 767
Copying an Area......Page 768
Using FontMetrics Methods to Compare Fonts......Page 769
Using FontMetrics Methods to Place a Border Around a String......Page 772
Using Drawing Strokes......Page 773
Working with Shapes......Page 775
DON'T DO IT......Page 776
KEY TERMS......Page 777
CHAPTER SUMMARY......Page 778
REVIEW QUESTIONS......Page 779
EXERCISES......Page 782
GAME ZONE......Page 785
UP FOR DISCUSSION......Page 788
CHAPTER 16 APPLETS, IMAGES, AND SOUND......Page 790
INTRODUCING APPLETS......Page 791
Running an Applet......Page 792
WRITING AN HTML DOCUMENT TO HOST AN APPLET......Page 793
CREATING A JApplet THAT CONTAINS AN init() METHOD......Page 795
WORKING WITH JApplet COMPONENTS......Page 797
UNDERSTANDING THE JApplet LIFE CYCLE......Page 799
The stop() Method......Page 800
UNDERSTANDING MULTIMEDIA AND USING IMAGES......Page 801
Adding Images to JApplets......Page 802
Using ImageIcons......Page 804
ADDING SOUND TO JApplets......Page 807
Creating an HTML Document to Host an Applet......Page 808
Creating and Running a JApplet......Page 809
Creating a More Complicated JApplet......Page 810
Making the JApplet's Button Respond to Events......Page 812
Understanding the Applet Life Cycle......Page 813
Displaying Images......Page 817
Playing Sounds......Page 818
KEY TERMS......Page 820
CHAPTER SUMMARY......Page 821
REVIEW QUESTIONS......Page 822
EXERCISES......Page 825
DEBUGGING EXERCISES......Page 827
GAME ZONE......Page 828
UP FOR DISCUSSION......Page 832
APPENDIX A: WORKING WITH THE JAVA PLATFORM......Page 834
APPENDIX B: LEARNING ABOUT ASCII AND UNICODE......Page 842
APPENDIX C: FORMATTING OUTPUT......Page 848
APPENDIX D: GENERATING RANDOM NUMBERS......Page 860
APPENDIX E: JAVADOC......Page 866
GLOSSARY......Page 874
INDEX......Page 894
๐ SIMILAR VOLUMES
JAVA PROGRAMMING, Sixth Edition provides the beginning programmer with a guide to developing applications using the Java programming language. Java is popular among professional programmers because it can be used to build visually interesting GUI and Web-based applications. Java also provides an exc
<p> <i>For courses in Java Programming.</i> </p> <p>ย </p> <p> <b>Effective step-by-step Java education</b> </p> <p> <b> <i>Building Java Programs: A Back to Basics Approach</i> </b> introduces new concepts and syntax using a spiral approach, ensuring students are thoroughly prepared as they work thr
<p> <i>For courses in Java Programming.</i> </p> <p>ย </p> <p> <b>Effective step-by-step Java education</b> </p> <p> <b> <i>Building Java Programs: A Back to Basics Approach</i> </b> introduces new concepts and syntax using a spiral approach, ensuring students are thoroughly prepared as they work thr