Chapter 1 Introduction
1.1 Computer Processing
Software Categories
Digital Computers
Binary Numbers
1.2 Hardware Components
Computer Architecture
Input/Output Devices
Main Memory and Secondaw Memory
The Central Processing Unit
1.3 Networks
Network Connections
Local—Area Networks and
Wide—Area Networks
The Internet
The World Wide Web
Uniform Resource Locators
1.4 The Java Programming Language
A Java Program
Comments
Identifiers and Reserved Words
White Space
1.5 Program Development
Programming Language Levels
Editors,Compilers,and Interpreters
Development Environments
Syntax a nd Sema ntics
Errors
1.6 Object-Oriented Programming
Problem Solving
object—Oriented Software Principles
Chapter 2 Data and Expressions
2.1 Character Strings
The pri nt and pri ntl n Methods
String Concatenation
Escape Sequences
2.2 Variables and Assignment
Varia bles
The Assignment statement
Constants
2.3 Primitive Data Types
Integers and Floating Points
Characters
Booleans
2.4 Expressions
Arithmetic Operators
0perator Precedence
Increment and Decrement Operators
Assignment Operators
2.5 Data Conversion
Conversion Techniques
2.6 Interactive Programs
The Scanner Class
2.7 Graphics
Coordinate Systems
Representing Color
2.8 Applets
Executing Applets Using the Web
2.9 Drawing Shapes
The Graphics Class
Software Failure:
NASA Mars Climate Orbiter
and Polar Lander
Chapter 3 Using Classes and Objects
3. 1 Creating Objects
Aliases
3.2 The Stri ng Class
3.3 Packages
The import Declaration
3.4 The Random Class
3.5 The Math Class
3.6 Formatting Output
The N umberFormat Class
The DecimalFormat Class
The printf Method
3.7 Enumerated Types
3.8 Wrapper Classes
Autoboxing
3.9 Components and Containers
Frames and Panels
3.10 Nested Panels
3.11 Images
Chapter 4 Writing Classes
4.1 Classes and Objects Revisited
4.2 Anatomy of a Class
Instance Data
UML Class Diagrams
4.3 Encapsulation
Visibility Modifiers
Accessors and Mutators
4.4 Anatomy of a Method
The retu rn Statement
Parameters
Local Data
Bank Account Example
4.5 Constructors Revisited
4.6 Graphical Objects
4.7 Graphical User Interfaces
4.8 Buttons
4.9 Text Fields
Software Failure:
Denver Airport Baggage
Handling System
Chapter 5 Conditionals and Loops
5.1 Boolean Expressions
Equality and Relational Operators
Logical OperatoB
5.2 The if Statement
The if—else Statement
Using Block Statements
Nested 1 f Statements
5.3 Comparing Data
Comparing Floats
Comparing Characte
Comparing 0bjects
5.4 The while Statement
I nfinite Loops
N ested Loops
The b reak and continue Statements
5.5 Irerators
Reading Text Files
5.6 The ArrayList Class
5.7 Determining Event Sources
5.8 Check Boxes and Radio Buttons
Check Boxes
Radio Buttons
Software Failure:
Therac
Chapter 6 More Conditionals and Loops
6.1 The swi tch Statement
6.2 The Conditional Operator
6.3 The do Statement
6.4 The for Statement
The for-each Loop
Comparing Loops
6.5 Drawing with Loops and Conditionals
6.6 Dialog Boxes
Chapter 7 Object-Oriented Design
7.1 Software Development Activities
7.2 Identifying Classes and Objects
Assigning Respons.bilities
7.3 Static Class Members
Static Varia bles
Static Methods
7.4 Class Relationships
Dependency
Dependencies Among Objects
of the Same Class
Aggregation
The thi S Reference
7.5 Interfaces
The Comparable Interface
The Iterator Interface
7.6 Enu merated Types Revisited
7.7 Method Design
Method Decomposition
Method Parameters Revisited
7.8 Method Overloading
7.9 Testing
Reviews
Defect Testing
7.10 GUI Design
7.11 Layout Managers
Flow Layout
Border Layout
Grid Layout
Box Layout
7.12 Borders
7.13 Containment Hierarchies
Software Failure
2003 Northeast Blackout
chapter8 Arrays
8.1 Array Elements
8.2 Declaring and Using Arrays
Bounds Checking
Alternate Array Syntax
lnitializer Lists
Arrays as Para meters
8.3 Arrays of Objects
8.4 Command-Line Arguments
8.5 Variable Length Parameter Lists
8.6 Two-Dimensional Arrays
Multidimensional Arrays
8.7 Polygons and Polylines
The Polygon Class
8.8 Mouse Events
8.9 Key Events
Software Failure:
LA Air Traffic Control
Chapter 9 Inheritance
9.1 Creating Subclasses
The p rotected Modifier
The supe r Reference
Multiple Inheritance
9.2 Overriding Methods
Shadowing Variables
9.3 Class Hierarchies
The 0bject Class
Abstract Classes
Jnterface Hierarchies
9.4 Visibility
9.5 Designing for Inheritance
Restricting Inheritance
9.6 The Component Class Hierarchy
9.7 Extending Adapr Classes
9.8 The Timer Class
Software Failure
Ariane 5 Flight 501
Ghapter 10 Polymorphism
10. 1 Late Binding
10.2 Polymorphism via Inheritance
10.3 Polymorphism via I nterfaces
10.4 Sorting
Selection Sort
Insertion Sort
Comparing Sorts
10.5 Searching
Linear Search
Binary Search
Comparing Searches
10.6 Designing for Polymorphlsm
1O.7 Event Processing
10.8 File Choosers
10.9 C:olor Choosers
10.10 Sliders
Chapter 11 Exceptions
11.1 Exception Handling
11.2 Uncaught Exceptions
11.3 The try-catch Statement
The fi nallY Clause
11.4 Exception Propagation
11.5 The Exception Class Hierarchy
Checked and Unchecked Exceptions
11.6 ilO Exceptions
11.7 Tool Tips and Mnemonics
11.8 Combo Boxes
1I.9 ScrolI Panes
11.10 Split Panes
Chapter 12 Recursion
12.1 Recursive Thinking
lnfinite Recu~ion
Recursion in Math
12.2 Recursive Programming
Recuion VS.Iteration
Direct VS.1ndirect Recursion
12.3 Using Recursion
Traversing a Maze
The Towers of Hanoi
12.4 Recursion in Graphics
Tiled Pictures
Fractals
Chapter 13 Collections
13.1 Collections and Data Structures
Separating Interface from Implementation
13.2 Dynamic Representatlons
Dyna mic StructureS
A Dynamically Linked List
Other Dynamic List Representqtions
13.3 Linear Data Structures
Queues
Stacks
13.4 Non-Linear Data Structures
Trees
Oraphs
13.5 The Java Collections API
Generics