| |
| |
Preface | |
| |
| |
| |
A Crash Course in Java | |
| |
| |
| |
"Hello, World!" in Java | |
| |
| |
| |
Documentation Comments | |
| |
| |
| |
Primitive Types | |
| |
| |
| |
Control Flow Statements | |
| |
| |
| |
Object References | |
| |
| |
| |
Parameter Passing | |
| |
| |
| |
Packages | |
| |
| |
| |
Basic Exception Handling | |
| |
| |
| |
Strings | |
| |
| |
| |
Reading Input | |
| |
| |
| |
Array Lists and Linked Lists | |
| |
| |
| |
Arrays | |
| |
| |
| |
Static Fields and Methods | |
| |
| |
| |
Programming Style | |
| |
| |
| |
The Object-Oriented Design Process | |
| |
| |
| |
From Problem to Code | |
| |
| |
| |
The Object and Class Concepts | |
| |
| |
| |
Identifying Classes | |
| |
| |
| |
Identifying Responsibilities | |
| |
| |
| |
Relationships Between Classes | |
| |
| |
| |
Use Cases | |
| |
| |
| |
CRC Cards | |
| |
| |
| |
UML Class Diagrams | |
| |
| |
| |
Sequence Diagrams | |
| |
| |
| |
State Diagrams | |
| |
| |
| |
Using javadoc for Design Documentation | |
| |
| |
| |
Case Study: A Voice Mail System | |
| |
| |
| |
Guidelines for Class Design | |
| |
| |
| |
An Overview of the Date Classes in the Java Library | |
| |
| |
| |
Designing a Day Class | |
| |
| |
| |
Three Implementations of the Day Class | |
| |
| |
| |
The Importance of Encapsulation | |
| |
| |
| |
Analyzing the Quality of an Interface | |
| |
| |
| |
Programming by Contract | |
| |
| |
| |
Unit Testing | |
| |
| |
| |
Interface Types and Polymorphism | |
| |
| |
| |
The Icon Interface Type | |
| |
| |
| |
Polymorphism | |
| |
| |
| |
The Comparable Interface Type | |
| |
| |
| |
The Comparator Interface Type | |
| |
| |
| |
Anonymous Classes | |
| |
| |
| |
Frames and User Interface Components | |
| |
| |
| |
User Interface Actions | |
| |
| |
| |
Timers | |
| |
| |
| |
Drawing Shapes | |
| |
| |
| |
Designing an Interface Type | |
| |
| |
| |
Patterns and GUI Programming | |
| |
| |
| |
The Iterator as a Pattern | |
| |
| |
| |
The Pattern Concept | |
| |
| |
| |
The Observer Pattern | |
| |
| |
| |
Layout Managers and the Strategy Pattern | |
| |
| |
| |
Components, Containers, and the Composite Pattern | |
| |
| |
| |
Scroll Bars and the Decorator Pattern | |
| |
| |
| |
How to Recognize Patterns | |
| |
| |
| |
Putting Patterns to Work | |
| |
| |
| |
Inheritance and Abstract Classes | |
| |
| |
| |
The Concept of Inheritance | |
| |
| |
| |
Graphics Programming with Inheritance | |
| |
| |
| |
Abstract Classes | |
| |
| |
| |
The Template Method Pattern | |
| |
| |
| |
Protected Interfaces | |
| |
| |
| |
The Hierarchy of Swing Components | |
| |
| |
| |
The Hierarchy of Standard Geometric Shapes | |
| |
| |
| |
The Hierarchy of Exception Classes | |
| |
| |
| |
When Not to Use Inheritance | |
| |
| |
| |
The Java Abject Model | |
| |
| |
| |
The Java Type System | |
| |
| |
| |
Type Inquiry | |
| |
| |
| |
The Object Class | |
| |
| |
| |
Shallow and Deep Copy | |
| |
| |
| |
Serialization | |
| |
| |
| |
Reflection | |
| |
| |
| |
Generic Types | |
| |
| |
| |
JavaBeans Components | |
| |
| |
| |
Frameworks | |
| |
| |
| |
Frameworks | |
| |
| |
| |
Applets as a Simple Framework | |
| |
| |
| |
The Collections Framework | |
| |
| |
| |
A Graph Editor Framework | |
| |
| |
| |
Enhancing the Graph Editor Framework | |
| |
| |
| |
Multithreading | |
| |
| |
| |
Thread Basics | |
| |
| |
| |
Thread Synchronization | |
| |
| |
| |
Animations | |
| |
| |
| |
More Design Patterns | |
| |
| |
| |
The Adapter Pattern | |
| |
| |
| |
Actions and the Command Pattern | |
| |
| |
| |
The Factory Method Pattern | |
| |
| |
| |
The Proxy Pattern | |
| |
| |
| |
The Singleton Pattern | |
| |
| |
| |
The Visitor Pattern | |
| |
| |
| |
Other Design Patterns | |
| |
| |
Glossary | |
| |
| |
Index | |
| |
| |
Photo Credits | |