Preface
Chapter 1 Introduction to Computers and Java
1.1 Introduction
1.2 Why Program?
1.3 Computer Systems: Hardware and Software
1.4 Programming Languages
1.5 W hat Is a Program Made of?
1.6 The Programming Process
1.7 Object-Oriented Programming
Review Questions and Exercises
Programming Challenge
Chapter 2 Java Fundamentals
2.1 The Parts of a Java Program
2.2 The print and println Methods, and the Java API
2.3 Variables and Literals
2.4 Primitive Data Types
2.5 Arithmetic Operators
2.6 Combined Assignment Operators
2.7 Conversion between Primitive Data Types
2.8 Creating Named Constants with final
2.9 The String Class
2.10 Scope
2.11 Comments
2.12 Programming Style
2.13 Reading Keyboard Input
2.14 Dialog Boxes
2.15 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 3 Decision Structures
3.1 The if Statement
3.2 The if-else Statement
3.3 The if-else-if Statement
3.4 Nested if Statements
3.5 Logical Operators
3.6 Comparing String Objects .
3.7 More about Variable Declaration and Scope
3.8 The Conditional Operator (Optional)
3.9 The switch Statement
3.10 Creating Objects with the DecimalFormat Class
3.11 The printf Method
3.12 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 4 Loops and Files
4.1 The Increment and Decrement Operators
4.2 The while Loop
4.3 Using the while Loop for Input Validation
4.4 The do-while Loop
4.5 The for Loop
4.6 Running Totals and Sentinel Values
4.7 Nested Loops
4.8 The break and continue Statements (Optional)
4.9 Deciding Which Loop to Use
4.10 Introduction to File Input and Output
4.11 The Random Class
4.12 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 5 Methods
5.1 Introduction to Methods
5.2 Passing Arguments to a Method
5.3 More about Local Variables
5.4 Returning a Value from a Method
5.5 Problem Solving with Methods
5.6 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 6 A First Look at Classes
6.1 Classes and Objects
6.2 Instance Fields and Methods
6.3 Constructors
6.4 Overloading Methods and Constructors
6.5 Scope of Instance Fields
6.6 Packages and import Statements
6.7 Focus on Object-Oriented Design: Finding the Classes
and Their Responsibilities
6.8 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 7 A First Look at GUI Applications
7.1 Introduction
7.2 Creating Windows
7.3 Equipping GUI Classes with a main Method
7.4 Layout Managers
7.5 Radio Buttons and Check Boxes
7.6 Borders
7.7 Focus on Problem Solving: Extending Classes from JPanel
7.8 Using Console Output to Debug a GUI Application
7.9 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 8 Arrays and the ArrayList Class
8.1 Introduction to Arrays
8.2 Processing Array Elements
8.3 Passing Arrays As Arguments to Methods
8.4 Some Useful Array Algorithms and Operations
8.5 Returning Arrays from Methods
8.6 String Arrays
8.7 Arrays of Objects
8.8 The Sequential Search Algorithm
8.9 Two-Dimensional Arrays
8.10 Arrays with Three or More Dimensions
8.11 Command-Line Arguments and Variable-Length Argument Lists
8.12 The ArrayList Class
8.13 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 9 A Second Look at Classes and Objects
9.1 Static Class Members
9.2 Passing Objects As Arguments to Methods
9.3 Returning Objects from Methods
9.4 The toString Method
9.5 Writing an equals Method
9.6 Methods That Copy Objects
9.7 Aggregation
9.8 The this Reference Variable
9.9 Enumerated Types
9.10 Garbage Collection
9.11 Focus on Object-Oriented Design: Class Collaboration
9.12 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 10 Text Processing and More about
Wrapper Classes
10.1 Introduction to Wrapper Classes
10.2 Character Testing and Conversion with the Character Class
10.3 More String Methods
10.4 The StringBuffer Class
10.5 Tokenizing Strings
10.6 Wrapper Classes for the Numeric Data Types
10.7 Focus on Problem Solving: The TestScoreReader Class
10.8 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 11 Inheritance
11.1 What Is Inheritance?
11.2 Calling the Superclass Constructor
11.3 Overriding Superclass Methods
11.4 Protected Members
11.5 Chains of Inheritance
11.6 T he Object Class
11.7 Polymorphism
11.8 Abstract Classes and Abstract Methods
11.9 Interfaces
11.10 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 12 Exceptions and More about Stream I/O
12.1 Handling Exceptions
12.2 Throwing Exceptions
12.3 More about Input/Output Streams
12.4 Advanced Topics: Binary Files, Random Access Files,
and Object Serialization
12.5 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 13 Advanced GUI Applications
13.1 T he Swing and AWT Class Hierarchy
13.2 Read-Only Text Fields
13.3 Lists
13.4 Combo Boxes
13.5 Displaying Images in Labels and Buttons
13.6 Mnemonics and Tool Tips
13.7 File Choosers and Color Choosers
13.8 Menus
13.9 More about Text Components: Text Areas and Fonts
13.10 Sliders
13.11 Look and Feel
13.12 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 14 Applets and More
14.1 Introduction to Applets
14.2 A Brief Introduction to HTML
14.3 Creating Applets with Swing
14.4 Using AWT for Portability
14.5 Drawing Shapes
14.6 Handling Mouse Events
14.7 Timer Objects
14.8 Playing Audio
14.9 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 15 Recursion
15.1 Introduction to Recursion
15.2 Solving Problems with Recursion
15.3 Examples of Recursive Methods
15.4 T he Towers of Hanoi
15.5 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 16 Sorting, Searching, and Algorithm Analysis
16.1 Introduction to Sorting Algorithms
16.2 Introduction to Search Algorithms
16.3 Analysis of Algorithms
16.4 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 17 Generics
17.1 Introduction to Generics
17.2 Writing a Generic Class
17.3 Passing Objects of a Generic Class to a Method
17.4 Writing Generic Methods
17.5 Constraining a Type Parameter in a Generic Class
17.6 Inheritance and Generic Classes
17.7 Defining Multiple Type Parameters
17.8 Generics and Interfaces
17.9 Erasure
17.10 Restrictions on the Use of Generic Types
17.11 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 18 Collections
18.1 Introduction to the Java Collections Framework
18.2 Lists
18.3 Sets
18.4 Maps
18.5 The Collections Class
18.6 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 19 Array-Based Lists
19.1 Introduction to Lists
19.2 Creating an Array-Based List to Hold String Objects
19.3 Creating a Generic Array-Based List
19.4 Writing Iterator Classes and Iterable Lists
Review Questions and Exercises
Programming Challenges
Chapter 20 Linked Lists
20.1 Introduction to Linked Lists
20.2 Operations on Linked Lists
20.3 Doubly-Linked and Circularly-Linked Lists
20.4 Recursion on Linked Lists
20.5 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 21 Stacks and Queues
21.1 S tacks and Their Applications
21.2 Array Implementation of Stacks
21.3 Linked Implementation of Stacks
21.4 Queues and Their Applications
21.5 Array Implementation of Queues
21.6 Linked List Implementation of Queues
21.7 Generic Implementation of Stacks and Queues
21.8 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Chapter 22 Binary Trees, AVL Trees, and Priority Queues
22.1 Binary Trees and Their Applications
22.2 Binary Search Trees
22.3 A VL Trees
22.4 Priority Queues
22.5 Common Errors to Avoid
Review Questions and Exercises
Programming Challenges
Index
Student CD-ROM:
Appendix A The ASCII/Unicode Characters
Appendix B Operator Precedence and Associativity
Appendix C Java Key Words
Appendix D Installing the JDK and JDK Documentation
Appendix E Using the javadoc Utility
Appendix F More about the Math Class
Appendix G Packages
Appendix H Working with Records and Random Access Files
Appendix I Using JBuilder 8
Appendix J More about JOptionPane Dialog Boxes
Appendix K Answers to Checkpoints
Appendix L Answers to Odd-Numbered Review Questions
Case Study 1 Calculating Sales Commission
Case Study 2 The Amortization Class
Case Study 3 The PinTester Class
Case Study 4 Parallel Arrays
Case Study 5 The FeetInches Class
Case Study 6 The SerialNumber Class
Case Study 7 A Simple Text Editor Application