{"product_id":"brief-java-isbn-9781119740193","title":"Brief Java","description":"\u003cp\u003e\u003cb\u003e\u003ci\u003eBrief Java: Early Objects, 9th Edition\u003c\/i\u003e\u003c\/b\u003e focuses on the essentials of effective learning and is suitable for a two-semester introduction to programming sequence. This text requires no prior programming experience and only a modest amount of high school algebra. Objects and classes from the standard library are used where appropriate in early sections with coverage on object-oriented design starting in Chapter 8. This gradual approach allows students to use objects throughout their study of the core algorithmic topics, without teaching bad habits that must be un-learned later.\u003c\/p\u003e \u003cp\u003eChoosing the enhanced eText format allows students to develop their coding skills using targeted, progressive interactivities designed to integrate with the eText. All sections include built-in activities, open-ended review exercises, programming exercises, and projects to help students practice programming and build confidence. These activities go far beyond simplistic multiple-choice questions and animations. They have been designed to guide students along a learning path for mastering the complexities of programming. Students demonstrate comprehension of programming structures, then practice programming with simple steps in scaffolded settings, and finally write complete, automatically graded programs.\u003c\/p\u003e \u003cp\u003eThe perpetual access VitalSource Enhanced eText, when integrated with your school’s learning management system, provides the capability to monitor student progress in VitalSource SCORECenter and track grades for homework or participation.\u003c\/p\u003e \u003cul\u003e \u003cli\u003eEnhanced eText and interactive functionality available through select vendors and may require LMS integration approval for SCORECenter.\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003ePreface v\u003c\/p\u003e \u003cp\u003eSpecial Features xxvi\u003c\/p\u003e \u003cp\u003e\u003cb\u003eIntroduction 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Computer Programs 2\u003c\/p\u003e \u003cp\u003e1.2 The Anatomy of a Computer 3\u003c\/p\u003e \u003cp\u003e1.3 The Java Programming Language 5\u003c\/p\u003e \u003cp\u003e1.4 Becoming Familiar with Your Programming Environment 7\u003c\/p\u003e \u003cp\u003e1.5 Analyzing Your First Program 11\u003c\/p\u003e \u003cp\u003e1.6 Errors 13\u003c\/p\u003e \u003cp\u003e1.7 PROBLEM SOLVING Algorithm Design 15\u003c\/p\u003e \u003cp\u003eThe Algorithm Concept 15\u003c\/p\u003e \u003cp\u003eAn Algorithm for Solving an Investment Problem 16\u003c\/p\u003e \u003cp\u003ePseudocode 17\u003c\/p\u003e \u003cp\u003eFrom Algorithms to Programs 18\u003c\/p\u003e \u003cp\u003eHT 1 Describing an Algorithm with Pseudocode 18\u003c\/p\u003e \u003cp\u003eWE 1 Writing an Algorithm for Tiling a Floor 20\u003c\/p\u003e \u003cp\u003eUsing Objects 23\u003c\/p\u003e \u003cp\u003e2.1 Objects and Classes 24\u003c\/p\u003e \u003cp\u003eUsing Objects 24\u003c\/p\u003e \u003cp\u003eClasses 25\u003c\/p\u003e \u003cp\u003e2.2 Variables 26\u003c\/p\u003e \u003cp\u003eVariable Declarations 26\u003c\/p\u003e \u003cp\u003eTypes 28\u003c\/p\u003e \u003cp\u003eNames 29\u003c\/p\u003e \u003cp\u003eComments 30\u003c\/p\u003e \u003cp\u003eAssignment 30\u003c\/p\u003e \u003cp\u003eST 1 Variable Type Inference 33\u003c\/p\u003e \u003cp\u003e2.3 Calling Methods 33\u003c\/p\u003e \u003cp\u003eThe Public Interface of a Class 33\u003c\/p\u003e \u003cp\u003eMethod Arguments 34\u003c\/p\u003e \u003cp\u003eReturn Values 35\u003c\/p\u003e \u003cp\u003eMethod Declarations 36\u003c\/p\u003e \u003cp\u003e2.4 Constructing Objects 38\u003c\/p\u003e \u003cp\u003e2.5 Accessor and Mutator Methods 40\u003c\/p\u003e \u003cp\u003e2.6 The API Documentation 41\u003c\/p\u003e \u003cp\u003eBrowsing the API Documentation 41\u003c\/p\u003e \u003cp\u003ePackages 43\u003c\/p\u003e \u003cp\u003e2.7 Implementing a Test Program 44\u003c\/p\u003e \u003cp\u003eST 2 Testing Classes in an Interactive Environment 45\u003c\/p\u003e \u003cp\u003eWE 1 How Many Days Have You Been Alive? 46\u003c\/p\u003e \u003cp\u003eWE 2 Working with Pictures 46\u003c\/p\u003e \u003cp\u003e2.8 Object References 46\u003c\/p\u003e \u003cp\u003e2.9 Graphical Applications 49\u003c\/p\u003e \u003cp\u003eFrame Windows 50\u003c\/p\u003e \u003cp\u003eDrawing on a Component 51\u003c\/p\u003e \u003cp\u003eDisplaying a Component in a Frame 53\u003c\/p\u003e \u003cp\u003e2.10 Ellipses, Lines, Text, and Color 54\u003c\/p\u003e \u003cp\u003eEllipses and Circles 54\u003c\/p\u003e \u003cp\u003eLines 55\u003c\/p\u003e \u003cp\u003eDrawing Text 56\u003c\/p\u003e \u003cp\u003eColors 56\u003c\/p\u003e \u003cp\u003eImplementing Classes 61\u003c\/p\u003e \u003cp\u003e3.1 Instance Variables and Encapsulation 62\u003c\/p\u003e \u003cp\u003eInstance Variables 62\u003c\/p\u003e \u003cp\u003eThe Methods of the Counter Class 64\u003c\/p\u003e \u003cp\u003eEncapsulation 64\u003c\/p\u003e \u003cp\u003e3.2 Specifying the Public Interface of a Class 66\u003c\/p\u003e \u003cp\u003eSpecifying Methods 66\u003c\/p\u003e \u003cp\u003eSpecifying Constructors 67\u003c\/p\u003e \u003cp\u003eUsing the Public Interface 69\u003c\/p\u003e \u003cp\u003eCommenting the Public Interface 69\u003c\/p\u003e \u003cp\u003e3.3 Providing the Class Implementation 72\u003c\/p\u003e \u003cp\u003eProviding Instance Variables 72\u003c\/p\u003e \u003cp\u003eProviding Constructors 73\u003c\/p\u003e \u003cp\u003eProviding Methods 75\u003c\/p\u003e \u003cp\u003eHT 1 Implementing a Class 78\u003c\/p\u003e \u003cp\u003eWE 1 Making a Simple Menu 81\u003c\/p\u003e \u003cp\u003e3.4 Unit Testing 81\u003c\/p\u003e \u003cp\u003e3.5 PROBLEM SOLVING Tracing Objects 84\u003c\/p\u003e \u003cp\u003e3.6 Local Variables 86\u003c\/p\u003e \u003cp\u003e3.7 The this Reference 88\u003c\/p\u003e \u003cp\u003eST 1 Calling One Constructor from Another 90\u003c\/p\u003e \u003cp\u003e3.8 Shape Classes 90\u003c\/p\u003e \u003cp\u003eHT 2 Drawing Graphical Shapes 94\u003c\/p\u003e \u003cp\u003eFundamental Data Types 99\u003c\/p\u003e \u003cp\u003e4.1 Numbers 100\u003c\/p\u003e \u003cp\u003eNumber Types 100\u003c\/p\u003e \u003cp\u003eConstants 102\u003c\/p\u003e \u003cp\u003eST 1 Big Numbers 106\u003c\/p\u003e \u003cp\u003e4.2 Arithmetic 107\u003c\/p\u003e \u003cp\u003eArithmetic Operators 107\u003c\/p\u003e \u003cp\u003eIncrement and Decrement 107\u003c\/p\u003e \u003cp\u003eInteger Division and Remainder 108\u003c\/p\u003e \u003cp\u003ePowers and Roots 109\u003c\/p\u003e \u003cp\u003eConverting Floating-Point Numbers to Integers 110\u003c\/p\u003e \u003cp\u003eST 2 Avoiding Negative Remainders 112\u003c\/p\u003e \u003cp\u003eST 3 Combining Assignment and Arithmetic 113\u003c\/p\u003e \u003cp\u003eST 4 Instance Methods and Static Methods 113\u003c\/p\u003e \u003cp\u003e4.3 Input and Output 114\u003c\/p\u003e \u003cp\u003eReading Input 114\u003c\/p\u003e \u003cp\u003eFormatted Output 115\u003c\/p\u003e \u003cp\u003eHT 1 Carrying Out Computations 118\u003c\/p\u003e \u003cp\u003eWE 1 Computing the Volume and Surface Area of a Pyramid 121\u003c\/p\u003e \u003cp\u003e4.4 PROBLEM SOLVING First Do it By Hand 121\u003c\/p\u003e \u003cp\u003eWE 2 Computing Travel Time 122\u003c\/p\u003e \u003cp\u003e4.5 Strings 122\u003c\/p\u003e \u003cp\u003eThe String Type 122\u003c\/p\u003e \u003cp\u003eConcatenation 123\u003c\/p\u003e \u003cp\u003eString Input 124\u003c\/p\u003e \u003cp\u003eEscape Sequences 124\u003c\/p\u003e \u003cp\u003eStrings and Characters 124\u003c\/p\u003e \u003cp\u003eSubstrings 125\u003c\/p\u003e \u003cp\u003eST 5 Using Dialog Boxes for Input and Output 128\u003c\/p\u003e \u003cp\u003eDecisions 131\u003c\/p\u003e \u003cp\u003e5.1 The if Statement 132\u003c\/p\u003e \u003cp\u003eST 1 The Conditional Operator 137\u003c\/p\u003e \u003cp\u003e5.2 Comparing Values 137\u003c\/p\u003e \u003cp\u003eRelational Operators 138\u003c\/p\u003e \u003cp\u003eComparing Floating-Point Numbers 139\u003c\/p\u003e \u003cp\u003eComparing Strings 140\u003c\/p\u003e \u003cp\u003eComparing Objects 141\u003c\/p\u003e \u003cp\u003eTesting for null 141\u003c\/p\u003e \u003cp\u003eHT 1 Implementing an if Statement 143\u003c\/p\u003e \u003cp\u003eWE 1 Extracting the Middle 146\u003c\/p\u003e \u003cp\u003e5.3 Multiple Alternatives 146\u003c\/p\u003e \u003cp\u003eST 2 The switch Statement 148\u003c\/p\u003e \u003cp\u003e5.4 Nested Branches 149\u003c\/p\u003e \u003cp\u003eST 3 Block Scope 154\u003c\/p\u003e \u003cp\u003eST 4 Enumeration Types 155\u003c\/p\u003e \u003cp\u003e5.5 PROBLEM SOLVING Flowcharts 156\u003c\/p\u003e \u003cp\u003e5.6 PROBLEM SOLVING Selecting Test Cases 159\u003c\/p\u003e \u003cp\u003eST 5 Logging 161\u003c\/p\u003e \u003cp\u003e5.7 Boolean Variables and Operators 161\u003c\/p\u003e \u003cp\u003eST 6 Short-Circuit Evaluation of Boolean Operators 165\u003c\/p\u003e \u003cp\u003eST 7 De Morgan’s Law 165\u003c\/p\u003e \u003cp\u003e5.8 APPLICATION Input Validation 166\u003c\/p\u003e \u003cp\u003eLoops 171\u003c\/p\u003e \u003cp\u003e6.1 The while Loop 172\u003c\/p\u003e \u003cp\u003e6.2 PROBLEM SOLVING Hand-Tracing 179\u003c\/p\u003e \u003cp\u003e6.3 The for Loop 183\u003c\/p\u003e \u003cp\u003eST 1 Variables Declared in a for Loop Header 189\u003c\/p\u003e \u003cp\u003e6.4 The do Loop 190\u003c\/p\u003e \u003cp\u003e6.5 APPLICATION Processing Sentinel Values 192\u003c\/p\u003e \u003cp\u003eST 2 Redirection of Input and Output 194\u003c\/p\u003e \u003cp\u003eST 3 The “Loop and a Half” Problem 194\u003c\/p\u003e \u003cp\u003eST 4 The break and continue Statements 195\u003c\/p\u003e \u003cp\u003e6.6 PROBLEM SOLVING Storyboards 197\u003c\/p\u003e \u003cp\u003e6.7 Common Loop Algorithms 199\u003c\/p\u003e \u003cp\u003eSum and Average Value 199\u003c\/p\u003e \u003cp\u003eCounting Matches 200\u003c\/p\u003e \u003cp\u003eFinding the First Match 200\u003c\/p\u003e \u003cp\u003ePrompting Until a Match is Found 201\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 201\u003c\/p\u003e \u003cp\u003eComparing Adjacent Values 202\u003c\/p\u003e \u003cp\u003eHT 1 Writing a Loop 203\u003c\/p\u003e \u003cp\u003eWE 1 Credit Card Processing 206\u003c\/p\u003e \u003cp\u003e6.8 Nested Loops 206\u003c\/p\u003e \u003cp\u003eWE 2 Manipulating the Pixels in an Image 209\u003c\/p\u003e \u003cp\u003e6.9 APPLICATION Random Numbers and Simulations 209\u003c\/p\u003e \u003cp\u003eGenerating Random Numbers 210\u003c\/p\u003e \u003cp\u003eThe Monte Carlo Method 211\u003c\/p\u003e \u003cp\u003e6.10 Using a Debugger 213\u003c\/p\u003e \u003cp\u003eHT 2 Debugging 215\u003c\/p\u003e \u003cp\u003eWE 3 A Sample Debugging Session 217\u003c\/p\u003e \u003cp\u003eArrays and Array Lists 221\u003c\/p\u003e \u003cp\u003e7.1 Arrays 222\u003c\/p\u003e \u003cp\u003eDeclaring and Using Arrays 222\u003c\/p\u003e \u003cp\u003eArray References 225\u003c\/p\u003e \u003cp\u003eUsing Arrays with Methods 226\u003c\/p\u003e \u003cp\u003ePartially Filled Arrays 226\u003c\/p\u003e \u003cp\u003eST 1 Methods with a Variable Number of Arguments 229\u003c\/p\u003e \u003cp\u003e7.2 The Enhanced for Loop 230\u003c\/p\u003e \u003cp\u003e7.3 Common Array Algorithms 232\u003c\/p\u003e \u003cp\u003eFilling 232\u003c\/p\u003e \u003cp\u003eSum and Average Value 232\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 232\u003c\/p\u003e \u003cp\u003eElement Separators 232\u003c\/p\u003e \u003cp\u003eLinear Search 233\u003c\/p\u003e \u003cp\u003eRemoving an Element 234\u003c\/p\u003e \u003cp\u003eInserting an Element 234\u003c\/p\u003e \u003cp\u003eSwapping Elements 236\u003c\/p\u003e \u003cp\u003eCopying Arrays 237\u003c\/p\u003e \u003cp\u003eReading Input 238\u003c\/p\u003e \u003cp\u003eST 2 Sorting with the Java Library 240\u003c\/p\u003e \u003cp\u003e7.4 PROBLEM SOLVING Adapting Algorithms 240\u003c\/p\u003e \u003cp\u003eHT 1 Working with Arrays 242\u003c\/p\u003e \u003cp\u003eWE 1 Rolling the Dice 245\u003c\/p\u003e \u003cp\u003e7.5 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 245\u003c\/p\u003e \u003cp\u003e7.6 Two-Dimensional Arrays 248\u003c\/p\u003e \u003cp\u003eDeclaring Two-Dimensional Arrays 248\u003c\/p\u003e \u003cp\u003eAccessing Elements 249\u003c\/p\u003e \u003cp\u003eLocating Neighboring Elements 250\u003c\/p\u003e \u003cp\u003eAccessing Rows and Columns 251\u003c\/p\u003e \u003cp\u003eTwo-Dimensional Array Parameters 252\u003c\/p\u003e \u003cp\u003eWE 2 A World Population Table 253\u003c\/p\u003e \u003cp\u003eST 3 Two-Dimensional Arrays with Variable Row Lengths 254\u003c\/p\u003e \u003cp\u003eST 4 Multidimensional Arrays 255\u003c\/p\u003e \u003cp\u003e7.7 Array Lists 255\u003c\/p\u003e \u003cp\u003eDeclaring and Using Array Lists 255\u003c\/p\u003e \u003cp\u003eUsing the Enhanced for Loop with Array Lists 258\u003c\/p\u003e \u003cp\u003eCopying Array Lists 259\u003c\/p\u003e \u003cp\u003eWrappers and Auto-boxing 259\u003c\/p\u003e \u003cp\u003eUsing Array Algorithms with Array Lists 260\u003c\/p\u003e \u003cp\u003eStoring Input Values in an Array List 261\u003c\/p\u003e \u003cp\u003eRemoving Matches 261\u003c\/p\u003e \u003cp\u003eChoosing Between Array Lists and Arrays 262\u003c\/p\u003e \u003cp\u003eST 5 The Diamond Syntax 264\u003c\/p\u003e \u003cp\u003e7.8 Regression Testing 264\u003c\/p\u003e \u003cp\u003eDesigning Classes 271\u003c\/p\u003e \u003cp\u003e8.1 Discovering Classes 272\u003c\/p\u003e \u003cp\u003e8.2 Designing Good Methods 273\u003c\/p\u003e \u003cp\u003eProviding a Cohesive Public Interface 273\u003c\/p\u003e \u003cp\u003eMinimizing Dependencies 274\u003c\/p\u003e \u003cp\u003eSeparating Accessors and Mutators 275\u003c\/p\u003e \u003cp\u003eMinimizing Side Effects 276\u003c\/p\u003e \u003cp\u003eST 1 Call by Value and Call by Reference 278\u003c\/p\u003e \u003cp\u003e8.3 PROBLEM SOLVING Patterns for Object Data 282\u003c\/p\u003e \u003cp\u003eKeeping a Total 282\u003c\/p\u003e \u003cp\u003eCounting Events 283\u003c\/p\u003e \u003cp\u003eCollecting Values 283\u003c\/p\u003e \u003cp\u003eManaging Properties of an Object 284\u003c\/p\u003e \u003cp\u003eModeling Objects with Distinct States 284\u003c\/p\u003e \u003cp\u003eDescribing the Position of an Object 285\u003c\/p\u003e \u003cp\u003e8.4 Static Variables and Methods 286\u003c\/p\u003e \u003cp\u003eST 2 Alternative Forms of Instance and Static Variable Initialization 289\u003c\/p\u003e \u003cp\u003eST 3 Static Imports 290\u003c\/p\u003e \u003cp\u003e8.5 PROBLEM SOLVING Solve a Simpler Problem First 291\u003c\/p\u003e \u003cp\u003e8.6 Packages 295\u003c\/p\u003e \u003cp\u003eOrganizing Related Classes into Packages 295\u003c\/p\u003e \u003cp\u003eImporting Packages 296\u003c\/p\u003e \u003cp\u003ePackage Names 297\u003c\/p\u003e \u003cp\u003ePackages and Source Files 297\u003c\/p\u003e \u003cp\u003eST 4 Package Access 298\u003c\/p\u003e \u003cp\u003eHT 1 Programming with Packages 299\u003c\/p\u003e \u003cp\u003e8.7 Unit Test Frameworks 300\u003c\/p\u003e \u003cp\u003eInheritance 305\u003c\/p\u003e \u003cp\u003e9.1 Inheritance Hierarchies 306\u003c\/p\u003e \u003cp\u003e9.2 Implementing Subclasses 310\u003c\/p\u003e \u003cp\u003e9.3 Overriding Methods 314\u003c\/p\u003e \u003cp\u003eST 1 Calling the Superclass Constructor 318\u003c\/p\u003e \u003cp\u003e9.4 Polymorphism 319\u003c\/p\u003e \u003cp\u003eST 2 Dynamic Method Lookup and the Implicit Parameter 322\u003c\/p\u003e \u003cp\u003eST 3 Abstract Classes 323\u003c\/p\u003e \u003cp\u003eST 4 Final Methods and Classes 324\u003c\/p\u003e \u003cp\u003eST 5 Protected Access 324\u003c\/p\u003e \u003cp\u003eHT 1 Developing an Inheritance Hierarchy 325\u003c\/p\u003e \u003cp\u003eWE 1 Implementing an Employee Hierarchy for Payroll Processing 330\u003c\/p\u003e \u003cp\u003e9.5 Object: The Cosmic Superclass 330\u003c\/p\u003e \u003cp\u003eOverriding the toString Method 330\u003c\/p\u003e \u003cp\u003eThe equals Method 332\u003c\/p\u003e \u003cp\u003eThe instanceof Operator 333\u003c\/p\u003e \u003cp\u003eST 6 Inheritance and the toString Method 335\u003c\/p\u003e \u003cp\u003eST 7 Inheritance and the equals Method 336\u003c\/p\u003e \u003cp\u003eInterfaces 339\u003c\/p\u003e \u003cp\u003e10.1 Using Interfaces for Algorithm Reuse 340\u003c\/p\u003e \u003cp\u003eDiscovering an Interface Type 340\u003c\/p\u003e \u003cp\u003eDeclaring an Interface Type 341\u003c\/p\u003e \u003cp\u003eImplementing an Interface Type 343\u003c\/p\u003e \u003cp\u003eComparing Interfaces and Inheritance 345\u003c\/p\u003e \u003cp\u003eST 1 Constants in Interfaces 346\u003c\/p\u003e \u003cp\u003eST 2 Nonabstract Interface Methods 347\u003c\/p\u003e \u003cp\u003e10.2 Working with Interface Variables 348\u003c\/p\u003e \u003cp\u003eConverting from Classes to Interfaces 348\u003c\/p\u003e \u003cp\u003eInvoking Methods on Interface Variables 349\u003c\/p\u003e \u003cp\u003eCasting from Interfaces to Classes 349\u003c\/p\u003e \u003cp\u003eWE 1 Investigating Number Sequences 350\u003c\/p\u003e \u003cp\u003e10.3 The Comparable Interface 350\u003c\/p\u003e \u003cp\u003eST 3 The clone Method and the Cloneable Interface 352\u003c\/p\u003e \u003cp\u003e10.4 Using Interfaces for Callbacks 355\u003c\/p\u003e \u003cp\u003eST 4 Lambda Expressions 358\u003c\/p\u003e \u003cp\u003eST 5 Generic Interface Types 360\u003c\/p\u003e \u003cp\u003e10.5 Inner Classes 360\u003c\/p\u003e \u003cp\u003e10.6 Mock Objects 361\u003c\/p\u003e \u003cp\u003e10.7 Event Handling 363\u003c\/p\u003e \u003cp\u003eListening to Events 363\u003c\/p\u003e \u003cp\u003eUsing Inner Classes for Listeners 365\u003c\/p\u003e \u003cp\u003e10.8 Building Applications with Buttons 368\u003c\/p\u003e \u003cp\u003e10.9 Processing Timer Events 371\u003c\/p\u003e \u003cp\u003e10.10 Mouse Events 374\u003c\/p\u003e \u003cp\u003eST 6 Keyboard Events 377\u003c\/p\u003e \u003cp\u003eST 7 Event Adapters 378\u003c\/p\u003e \u003cp\u003eInput\/Output and Exception Handling 383\u003c\/p\u003e \u003cp\u003e11.1 Reading and Writing Text Files 384\u003c\/p\u003e \u003cp\u003eST 1 Reading Web Pages 387\u003c\/p\u003e \u003cp\u003eST 2 File Dialog Boxes 387\u003c\/p\u003e \u003cp\u003eST 3 Character Encodings 388\u003c\/p\u003e \u003cp\u003e11.2 Text Input and Output 389\u003c\/p\u003e \u003cp\u003eReading Words 389\u003c\/p\u003e \u003cp\u003eReading Characters 390\u003c\/p\u003e \u003cp\u003eClassifying Characters 390\u003c\/p\u003e \u003cp\u003eReading Lines 390\u003c\/p\u003e \u003cp\u003eScanning a String 392\u003c\/p\u003e \u003cp\u003eConverting Strings to Numbers 392\u003c\/p\u003e \u003cp\u003eAvoiding Errors When Reading Numbers 392\u003c\/p\u003e \u003cp\u003eMixing Number, Word, and Line Input 393\u003c\/p\u003e \u003cp\u003eFormatting Output 394\u003c\/p\u003e \u003cp\u003eST 4 Regular Expressions 395\u003c\/p\u003e \u003cp\u003eST 5 Reading an Entire File 396\u003c\/p\u003e \u003cp\u003e11.3 Command Line Arguments 396\u003c\/p\u003e \u003cp\u003eHT 1 Processing Text Files 399\u003c\/p\u003e \u003cp\u003eWE 1 Analyzing Baby Names 403\u003c\/p\u003e \u003cp\u003e11.4 Exception Handling 403\u003c\/p\u003e \u003cp\u003eThrowing Exceptions 403\u003c\/p\u003e \u003cp\u003eCatching Exceptions 405\u003c\/p\u003e \u003cp\u003eChecked Exceptions 407\u003c\/p\u003e \u003cp\u003eClosing Resources 409\u003c\/p\u003e \u003cp\u003eDesigning Your Own Exception Types 410\u003c\/p\u003e \u003cp\u003eST 6 Assertions 411\u003c\/p\u003e \u003cp\u003eST 7 The try\/finally Statement 412\u003c\/p\u003e \u003cp\u003e11.5 APPLICATION Handling Input Errors 412\u003c\/p\u003e \u003cp\u003eObject-Oriented Design \u003cb\u003e419\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Classes and Their Responsibilities 420\u003c\/p\u003e \u003cp\u003eDiscovering Classes 420\u003c\/p\u003e \u003cp\u003eThe CRC Card Method 421\u003c\/p\u003e \u003cp\u003e12.2 Relationships Between Classes 423\u003c\/p\u003e \u003cp\u003eDependency 423\u003c\/p\u003e \u003cp\u003eAggregation 424\u003c\/p\u003e \u003cp\u003eInheritance 425\u003c\/p\u003e \u003cp\u003eHT 1 Using CRC Cards and UML Diagrams in Program Design 426\u003c\/p\u003e \u003cp\u003eST 1 Attributes and Methods in UML Diagrams 426\u003c\/p\u003e \u003cp\u003eST 2 Multiplicities 427\u003c\/p\u003e \u003cp\u003eST 3 Aggregation, Association, and Composition 427\u003c\/p\u003e \u003cp\u003e12.3 APPLICATION Printing an Invoice 428\u003c\/p\u003e \u003cp\u003eRequirements 429\u003c\/p\u003e \u003cp\u003eCRC Cards 429\u003c\/p\u003e \u003cp\u003eUML Diagrams 432\u003c\/p\u003e \u003cp\u003eMethod Documentation 432\u003c\/p\u003e \u003cp\u003eImplementation 434\u003c\/p\u003e \u003cp\u003eWE 1 Simulating an Automatic Teller Machine 439\u003c\/p\u003e \u003cp\u003eRECURSION*(ETEXT ONLY) 443\u003c\/p\u003e \u003cp\u003e13.1 Triangle Numbers 444\u003c\/p\u003e \u003cp\u003eHT 1 Thinking Recursively 448\u003c\/p\u003e \u003cp\u003eWE 1 Finding Files 452\u003c\/p\u003e \u003cp\u003e13.2 Recursive Helper Methods 452\u003c\/p\u003e \u003cp\u003e13.3 The Efficiency of Recursion 453\u003c\/p\u003e \u003cp\u003e13.4 Permutations 459\u003c\/p\u003e \u003cp\u003e13.5 Mutual Recursion 463\u003c\/p\u003e \u003cp\u003e13.6 Backtracking 469\u003c\/p\u003e \u003cp\u003eWE 2 Towers of Hanoi 475\u003c\/p\u003e \u003cp\u003eSORTING AND SEARCHING*(ETEXT ONLY) 477\u003c\/p\u003e \u003cp\u003e14.1 Selection Sort 478\u003c\/p\u003e \u003cp\u003e14.2 Profiling the Selection Sort Algorithm 481\u003c\/p\u003e \u003cp\u003e14.3 Analyzing the Performance of the Selection Sort Algorithm 484\u003c\/p\u003e \u003cp\u003eST 1 Oh, Omega, and Theta 486\u003c\/p\u003e \u003cp\u003eST 2 Insertion Sort 487\u003c\/p\u003e \u003cp\u003e14.4 Merge Sort 488\u003c\/p\u003e \u003cp\u003e14.5 Analyzing the Merge Sort Algorithm 491\u003c\/p\u003e \u003cp\u003eST 3 The Quicksort Algorithm 493\u003c\/p\u003e \u003cp\u003e14.6 Searching 495\u003c\/p\u003e \u003cp\u003eLinear Search 495\u003c\/p\u003e \u003cp\u003eBinary Search 497\u003c\/p\u003e \u003cp\u003e14.7 PROBLEM SOLVING Estimating the Running Time of an Algorithm 500\u003c\/p\u003e \u003cp\u003eLinear Time 500\u003c\/p\u003e \u003cp\u003eQuadratic Time 501\u003c\/p\u003e \u003cp\u003eThe Triangle Pattern 502\u003c\/p\u003e \u003cp\u003eLogarithmic Time 503\u003c\/p\u003e \u003cp\u003e14.8 Sorting and Searching in the Java Library 504\u003c\/p\u003e \u003cp\u003eSorting 504\u003c\/p\u003e \u003cp\u003eBinary Search 505\u003c\/p\u003e \u003cp\u003eComparing Objects 505\u003c\/p\u003e \u003cp\u003eST 4 The Comparator Interface 506\u003c\/p\u003e \u003cp\u003eST 5 Comparators with Lambda Expressions 507\u003c\/p\u003e \u003cp\u003eWE 1 Enhancing the Insertion Sort Algorithm 507\u003c\/p\u003e \u003cp\u003eThe Java Collections Framework*(ETEXT ONLY) 511\u003c\/p\u003e \u003cp\u003e15.1 An Overview of the Collections Framework 512\u003c\/p\u003e \u003cp\u003e15.2 Linked Lists 514\u003c\/p\u003e \u003cp\u003eThe Structure of Linked Lists 515\u003c\/p\u003e \u003cp\u003eThe LinkedList Class of the Java Collections Framework 516\u003c\/p\u003e \u003cp\u003eList Iterators 516\u003c\/p\u003e \u003cp\u003e15.3 Sets 520\u003c\/p\u003e \u003cp\u003eChoosing a Set Implementation 520\u003c\/p\u003e \u003cp\u003eWorking with Sets 522\u003c\/p\u003e \u003cp\u003e15.4 Maps 525\u003c\/p\u003e \u003cp\u003eST 1 Updating Map Entries 527\u003c\/p\u003e \u003cp\u003eHT 1 Choosing a Collection 527\u003c\/p\u003e \u003cp\u003eWE 1 Word Frequency 528\u003c\/p\u003e \u003cp\u003eST 2 Hash Functions 529\u003c\/p\u003e \u003cp\u003e15.5 Stacks, Queues, and Priority Queues 531\u003c\/p\u003e \u003cp\u003eStacks 531\u003c\/p\u003e \u003cp\u003eQueues 532\u003c\/p\u003e \u003cp\u003ePriority Queues 533\u003c\/p\u003e \u003cp\u003e15.6 Stack and Queue Applications 534\u003c\/p\u003e \u003cp\u003eBalancing Parentheses 534\u003c\/p\u003e \u003cp\u003eEvaluating Reverse Polish Expressions 535\u003c\/p\u003e \u003cp\u003eEvaluating Algebraic Expressions 537\u003c\/p\u003e \u003cp\u003eBacktracking 540\u003c\/p\u003e \u003cp\u003eST 3 Reverse Polish Notation 542\u003c\/p\u003e \u003cp\u003eWE 2 Simulating a Queue of Waiting Customers 543\u003c\/p\u003e \u003cp\u003eAppendix A The Basic Latin and Latin-1 Subsets of Unicode A-1\u003c\/p\u003e \u003cp\u003eAppendix B Java Operator Summary A-5\u003c\/p\u003e \u003cp\u003eAppendix C Java Reserved Word Summary A-7\u003c\/p\u003e \u003cp\u003eAppendix D The Java Library A-9\u003c\/p\u003e \u003cp\u003eAppendix E Java Language Coding Guidelines A-29\u003c\/p\u003e \u003cp\u003eAppendix F Tool Summary (ETEXT ONLY)\u003c\/p\u003e \u003cp\u003eAppendix G Number Systems (ETEXT ONLY)\u003c\/p\u003e \u003cp\u003eAppendix H UML Summary (ETEXT ONLY)\u003c\/p\u003e \u003cp\u003eAppendix I Java Syntax Summary (ETEXT ONLY)\u003c\/p\u003e \u003cp\u003eAppendix J Html Summary (ETEXT ONLY)\u003c\/p\u003e \u003cp\u003eGlossary G-1\u003c\/p\u003e \u003cp\u003eIndex I-1\u003c\/p\u003e \u003cp\u003eCredits C-1\u003c\/p\u003e \u003cp\u003eQuick Reference C-3\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47988858257637,"sku":"NP9781119740193","price":111.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119740193.jpg?v=1761781802","url":"https:\/\/k12savings.com\/es\/products\/brief-java-isbn-9781119740193","provider":"K12savings","version":"1.0","type":"link"}