Java Software Solutions: Foundations of Program Design

Front Cover
Preface p. vii Chapter 1 Introduction p. 1 1.1 Computer Processing p. 2 Software Categories p. 3 Digital Computers p. 5 Binary Numbers p. 7 1.2 Hardware Components p. 10 Computer Architecture p. 10 Input/Output Devices p. 12 Main Memory and Secondary Memory p. 13 The Central Processing Unit p. 17 1.3 Networks p. 19 Network Connections p. 19 Local-Area Networks and Wide-Area Networks p. 21 The Internet p. 22 The World Wide Web p. 24 Uniform Resource Locators p. 25 1.4 The Java Programming Language p. 26 A Java Program p. 27 Comments p. 29 Identifiers and Reserved Words p. 31 White Space p. 33 1.5 Program Development p. 35 Programming Language Levels p. 36 Editors, Compilers, and Interpreters p. 38 Development Environments p. 40 Syntax and Semantics p. 41 Errors p. 42 1.6 Object-Oriented Programming p. 43 Problem Solving p. 44 Object-Oriented Software Principles p. 45 Chapter 2 Data and Expressions p. 61 2.1 Character Strings p. 62 The print and println Methods p. 62 String Concatenation p. 64 Escape Sequences p. 66 2.2 Variables and Assignment p. 69 Variables p. 69 The Assignment Statement p. 71 Constants p. 73 2.3 Primitive Data Types p. 73 Integers and Floating Points p. 74 Characters p. 75 Booleans p. 77 2.4 Expressions p. 77 Arithmetic Operators p. 78 Operator Precedence p. 78 Increment and Decrement Operators p. 83 Assignment Operators p. 84 2.5 Data Conversion p. 85 Conversion Techniques p. 87 2.6 Interactive Programs p. 88 The Scanner Class p. 88 2.7 Graphics p. 93 Coordinate Systems p. 94 Representing Color p. 95 2.8 Applets p. 96 Executing Applets Using the Web p. 98 2.9 Drawing Shapes p. 99 The Graphics Class p. 99 Chapter 3 Using Classes and Objects p. 113 3.1 Creating Objects p. 114 Aliases p. 116 3.2 The String Class p. 118 3.3 Packages p. 121 The import Declaration p. 122 3.4 The Random Class p. 124 3.5 The Math Class p. 127 3.6 Formatting Output p. 130 The NumberFormat Class p. 130 The DecimalFormat Class p. 133 The printf Method p. 135 3.7 Enumerated Types p. 135 3.8 Wrapper Classes p. 138 Autoboxing p. 141 3.9 Components and Containers p. 141 Frames and Panels p. 142 3.10 Nested Panels p. 145 3.11 Images p. 148 Chapter 4 Writing Classes p. 155 4.1 Anatomy of a Class p. 156 Instance Data p. 161 UML Class Diagrams p. 162 4.2 Encapsulation p. 163 Visibility Modifiers p. 164 Accessors and Mutators p. 165 4.3 Anatomy of a Method p. 166 The return Statement p. 167 Parameters p. 169 Local Data p. 170 Bank Account Example p. 171 4.4 Constructors Revisited p. 175 4.5 Graphical Objects p. 175 4.6 Graphical User Interfaces p. 184 4.7 Buttons p. 185 4.8 Text Fields p. 189 Chapter 5 Conditionals and Loops p. 201 5.1 Boolean Expressions p. 202 Equality and Relational Operators p. 203 Logical Operators p. 204 5.2 The if Statement p. 207 The if-else Statement p. 209 Using Block Statements p. 212 The Conditional Operator p. 217 Nested if Statements p. 218 5.3 Comparing Data p. 220 Comparing Floats p. 220 Comparing Characters p. 221 Comparing Objects p. 222 5.4 The switch Statement p. 223 5.5 The while Statement p. 227 Infinite Loops p. 232 Nested Loops p. 234 Other Loop Controls p. 237 5.6 Iterators p. 238 Reading Text Files p. 239 5.7 The do Statement p. 242 5.8 The for Statement p. 245 Iterators and for Loops p. 249 Comparing Loops p. 251 5.9 Drawing with Loops and Conditionals p. 251 5.10 Determining Event Sources p. 254 5.11 Dialog Boxes p. 260 5.12 More Button Components p. 263 Check Boxes p. 264 Radio Buttons p. 267 Chapter 6 Object-Oriented Design p. 287 6.1 Software Development Activities p. 288 6.2 Identifying Classes and Objects p. 289 Assigning Responsibilities p. 291 6.3 Static Class Members p. 291 Static Variables p. 292 Static Methods p. 292 6.4 Class Relationships p. 296 Dependency p. 296 Dependencies Among Objects of the Same Class p. 296 Aggregation p. 303 The this Reference p. 305 6.5 Interfaces p. 309 The Comparable Interface p. 315 The Iterator Interface p. 316 6.6 Enumerated Types Revisited p. 316 6.7 Method Design p. 319 Method Decomposition p. 320 Method Parameters Revisited p. 325 6.8 Method Overloading p. 328 6.9 Testing p. 333 Reviews p. 334 Defect Testing p. 334 6.10 GUI Design p. 336 6.11 Layout Managers p. 337 Flow Layout p. 339 Border Layout p. 344 Grid Layout p. 348 Box Layout p. 350 6.12 Borders p. 354 6.13 Containment Hierarchies p. 358 Chapter 7 Arrays p. 369 7.1 Array Elements p. 370 7.2 Declaring and Using Arrays p. 371 Bounds Checking p. 373 Alternate Array Syntax p. 379 Initializer Lists p. 379 Arrays as Parameters p. 380 7.3 Arrays of Objects p. 381 7.4 Command-Line Arguments p. 392 7.5 Variable Length Parameter Lists p. 394 7.6 Two-Dimensional Arrays p. 398 Multidimensional Arrays p. 402 7.7 The ArrayList Class p. 403 Specifying an ArrayList Element Type p. 404 ArrayList Efficiency p. 406 7.8 Polygons and Polylines p. 407 The Polygon Class p. 408 7.9 Mouse Events p. 412 7.10 Key Events p. 420 Chapter 8 Inheritance p. 437 8.1 Creating Subclasses p. 438 The protected Modifier p. 443 The super Reference p. 444 Multiple Inheritance p. 448 8.2 Overriding Methods p. 449 Shadowing Variables p. 451 8.3 Class Hierarchies p. 452 The Object Class p. 454 Abstract Classes p. 455 Interface Hierarchies p. 457 8.4 Visibility p. 458 8.5 Designing for Inheritance p. 461 Restricting Inheritance p. 462 8.6 The Component Class Hierarchy p. 463 8.7 Extending Adapter Classes p. 465 8.8 The Timer Class p. 469 Chapter 9 Polymorphism p. 481 9.1 Late Binding p. 482 9.2 Polymorphism via Inheritance p. 483 9.3 Polymorphism via Interfaces p. 496 9.4 Sorting p. 498 Selection Sort p. 498 Insertion Sort p. 505 Comparing Sorts p. 506 9.5 Searching p. 507 Linear Search p. 507 Binary Search p. 511 Comparing Searches p. 513 9.6 Designing for Polymorphism p. 513 9.7 Event Processing p. 514 9.8 File Choosers p. 515 9.9 Color Choosers p. 518 9.10 Sliders p. 521 Chapter 10 Exceptions p. 531 10.1 Exception Handling p. 532 10.2 Uncaught Exceptions p. 533 10.3 The try-catch Statement p. 534 The finally Clause p. 537 10.4 Exception Propagation p. 538 10.5 The Exception Class Hierarchy p. 541 Checked and Unchecked Exceptions p. 544 10.6 I/O Exceptions p. 545 10.7 Tool Tips and Mnemonics p. 549 10.8 Combo Boxes p. 556 10.9 Scroll Panes p. 562 10.10 Split Panes p. 564 Chapter 11 Recursion p.

Bibliographic information