search for books and compare prices
Tables of Contents for Understanding Object-Oriented Programming With Java
Chapter/Section Title
Page #
Page Count
Preface
v
 
I UNDERSTANDING THE OBJECT-ORIENTED WORLDVIEW
1
50
Object-Oriented Thinking
3
14
A Way of Viewing the World
3
7
Agents and Communities
4
1
Messages and Methods
5
1
Responsibilities
6
1
Classes and Instances
6
1
Class Hierarchies---Inheritance
7
1
Method Binding, Overriding, and Exceptions
8
1
Summary of Object-Oriented Concepts
9
1
Computation as Simulation
10
2
The Power of Metaphor
11
1
Chapter Summary
12
5
Further Reading
13
1
Study Questions
14
1
Exercises
14
3
A Brief History of Object-Oriented Programming
17
12
The History of Java
18
1
Client-Side Computing
19
3
Bytecode Interpreters and Just-In-Time Compilers
21
1
Security Issues
21
1
Specialization of Interfaces
22
1
The White Paper Description
22
4
Java Is Simple
22
1
Java Is Object-Oriented
23
1
Java Is Network Savvy
23
1
Java Is Interpreted
23
1
Java Is Robust
24
1
Java Is Secure
25
1
Java Is Architecture Neutral
25
1
Java Is Portable
25
1
Java Is High-Performance
26
1
Java Is Multithreaded
26
1
Java Is Dynamic
26
1
Chapter Summary
26
3
Study Questions
26
1
Exercises
27
2
Object-Oriented Design
29
22
Responsibility Implies Noninterference
29
1
Programming in the Small and in the Large
30
1
Why Begin with Behavior?
31
1
A Case Study in RDD
32
2
The Interactive Intelligent Kitchen Helper
32
1
Working With Components
33
1
Identification of Components
33
1
CRC Cards---Recording Responsibility
34
2
Giving Components a Physical Representation
34
1
The What/Who Cycle
35
1
Documentation
35
1
Components and Behavior
36
5
Postponing Decisions
37
1
Preparing for Change
37
1
Continuing the Scenario
38
2
Interaction Diagrams
40
1
Software Components
41
3
Behavior and State
41
1
Instances and Classes
42
1
Coupling and Cohesion
42
1
Interface and Implementation: Parnas's Principles
43
1
Formalizing the Interface
44
2
Coming Up with Names
44
2
Designing the Representation
46
1
Implementing Components
46
1
Integration of Components
47
1
Maintenance and Evolution
48
1
Chapter Summary
48
3
Study Questions
49
1
Exercises
50
1
II UNDERSTANDING PARADIGMS
51
70
A Paradigm
53
14
Program Structure
54
2
The Connection to the Java World
56
1
Types
57
2
Access Modifiers
59
2
Lifetime Modifiers
61
1
Chapter Summary
61
6
Cross References
62
1
Study Questions
63
1
Exercises
63
4
Ball Worlds
67
16
Data Fields
70
1
Constructors
71
3
Constructing the Application
74
1
Inheritance
74
2
The Java Graphics Model
76
1
The Class Ball
77
1
Multiple Objects of the Same Class
78
2
Chapter Summary
80
3
Cross References
81
1
Study Questions
81
1
Exercises
82
1
A Cannon Game
83
16
The Simple Cannon Game
84
5
Balls That Respond to Gravity
88
1
Integers and ints
89
1
Adding User Interaction
89
6
Inner Classes
90
1
Interfaces
91
2
The Java Event Model
93
1
Window Layout
94
1
Chapter Summary
95
4
Cross References
96
1
Study Questions
97
1
Exercises
97
2
Pinball Game Construction Kit
99
22
First Version of Game
99
8
Collection Classes
100
3
Mouse Listeners
103
1
Multiple Threads of Execution
104
2
Exception Handling
106
1
Adding Targets: Inheritance and Interfaces
107
9
The Pinball Target Interface
107
5
Adding a Label to Our Pinball Game
112
4
Pinball Game Construction Kit: Mouse Events Reconsidered
116
2
Chapter Summary
118
3
Cross References
118
1
Study Questions
119
1
Exercises
119
2
III UNDERSTANDING INHERITANCE
121
72
Understanding Inheritance
123
18
An Intuitive Description of Inheritance
123
1
The Base Class Object
124
1
Subclass, Subtype, and Substitutability
125
1
Forms of Inheritance
126
8
Inheritance for Specialization
127
1
Inheritance for Specification
127
2
Inheritance for Construction
129
2
Inheritance for Extension
131
1
Inheritance for Limitation
131
1
Inheritance for Combination
132
1
Summary of the Forms of Inheritance
133
1
Modifiers and Inheritance
134
1
Programming as a Multiperson Activity
135
1
The Benefits of Inheritance
135
2
Software Reusability
135
1
Increased Reliability
135
1
Code Sharing
136
1
Consistency of Interface
136
1
Software Components
136
1
Rapid Prototyping
136
1
Polymorphism and Frameworks
137
1
Information Hiding
137
1
The Costs of Inheritance
137
1
Execution Speed
137
1
Program Size
138
1
Message-Passing Overhead
138
1
Program Complexity
138
1
Chapter Summary
138
3
Study Questions
139
1
Exercises
140
1
A Case Study: Solitaire
141
20
The Class Card
141
2
The Game
143
3
Card Piles---Inheritance in Action
146
9
The Suit Piles
149
1
The Deck Pile
149
2
The Discard Pile
151
1
The Tableau Piles
151
4
The Application Class
155
1
Playing the Polymorphic Game
156
2
Building a More Complete Game
158
1
Chapter Summary
158
3
Study Questions
159
1
Exercises
159
2
Mechanisms for Software Reuse
161
16
Substitutability
161
3
The Is-a Rule and the Has-a Rule
163
1
Inheritance of Code and Inheritance of Behavior
163
1
Composition and Inheritance Described
164
4
Using Composition
166
1
Using Inheritance
167
1
Composition and Inheritance Contrasted
168
2
Combining Inheritance and Composition
170
1
Novel Forms of Software Reuse
171
4
Dynamic Composition
172
1
Inheritance of Inner Classes
173
1
Unnamed Classes
174
1
Chapter Summary
175
2
Study Questions
176
1
Exercises
176
1
Implications of Inheritance
177
16
The Polymorphic Variable
178
1
Memory Layout
179
3
An Alternative Technique
181
1
Assignment
182
4
Clones
183
2
Parameters as a Form of Assignment
185
1
Equality Test
186
3
Garbage Collection
189
1
Chapter Summary
190
3
Study Questions
190
1
Exercises
191
2
IV UNDERSTANDING POLYMORPHISM
193
74
Polymorphism
195
12
Varieties of Polymorphism
195
1
Polymorphic Variables
196
1
Overloading
197
3
Overloading Messages in Real Life
197
1
Overloading and Coercion
197
1
Overloading from Separate Classes
198
1
Parametric Overloading
199
1
Overriding
200
1
Replacement and Refinment
200
1
Abstract Methods
201
1
Pure Polymorphism
202
1
Efficiency and Polymorphism
203
1
Chapter Summary
204
3
Further Reading
204
1
Study Questions
205
1
Exercises
205
2
The AWT
207
26
The AWT Class Hierarchy
207
3
The Layout Manager
210
3
Layout Manager Types
211
2
User Interface Components
213
7
Labels
213
1
Button
214
1
Canvas
215
1
Scroll Bars
215
1
Text Components
216
1
Checkbox
217
1
Checkbox Groups, Choices, and Lists
218
2
Panels
220
2
ScrollPane
221
1
Case Study: A Color Display
222
4
Dialogs
226
1
Example Program for Dialogs
226
1
The Menu Bar
227
4
A Quit Menu Facility
229
2
Chapter Summary
231
2
Study Questions
231
1
Exercises
232
1
Input and Output Streams
233
22
Streams versus Readers and Writers
233
1
Input Streams
234
4
Physical Input Streams
235
1
Virtual Input Streams
235
3
Stream Tokenizer
238
1
Output Streams
239
3
Object Serialization
242
2
Piped Input and Output
244
5
Readers and Writers
249
2
Chapter Summary
251
4
Study Questions
252
1
Exercises
252
3
Design Patterns
255
12
Adapter
255
1
Composite
256
2
Strategy
258
1
Observer
259
1
Flyweight
260
1
Abstract Factory
260
1
Factory Method
261
1
Iterator
261
2
Decorator (Filter or Wrapper)
263
1
Proxy
264
1
Bridge
264
1
Chapter Summary
265
2
Further Reading
265
1
Study Questions
265
1
Exercise
266
1
V UNDERSTANDING THE JAVA WORLD
267
112
Exception Handling
269
8
Information Transmitted to the Catch Block
271
1
Catching Multiple Errors
271
1
The Finally Clause
272
1
Termination or Resumptive Models
272
1
Exceptions Thrown in the Standard Library
273
1
Throwing Exceptions
274
1
Passing On Exceptions
275
1
Chapter Summary
276
1
Study Questions
276
1
Exercises
276
1
Utility Classes
277
14
Point
277
1
Dimension
278
1
Date
278
2
After the Epoch
279
1
Math
280
1
Random
281
1
Toolkit
282
1
System
283
1
Strings and Related Classes
283
6
Operations on Strings
284
3
String Buffers
287
1
String Tokenizers
288
1
Parsing String Values
289
1
Chapter Summary
289
2
Study Questions
290
1
Understanding Graphics
291
20
Color
291
1
Rectangles
292
3
Rectangle Sample Program
293
2
Fonts
295
5
Font Metrics
297
1
Font Example Program
297
3
Images
300
2
Animation
301
1
Graphics Contexts
302
2
A Simple Painting Program
304
2
Chapter Summary
306
5
Study Questions
309
1
Exercises
309
2
Collection Classes
311
22
Element Types and Primitive Value Wrappers
311
2
Enumerators
313
1
The Array
314
1
The Vector Collection
315
4
Using a Vector as an Array
315
2
Using a Vector as a Stack
317
1
Using a Vector as a Queue
317
1
Using a Vector as a Set
318
1
Using a Vector as a List
319
1
The Stack Collection
319
1
The BitSet Collection
320
1
Example Program: Prime Sieve
321
1
The Dictionary Interface and the Hashtable Collection
321
5
Example Program: A Concordance
323
2
Properties
325
1
Why Are There No Ordered Collections?
326
2
Building Your Own Containers
328
3
Chapter Summary
331
2
Study Questions
331
1
Exercises
332
1
Multiple Threads of Execution
333
18
Creating Threads
333
5
Synchronizing Threads
337
1
Case Study: A Tetris Game
338
10
The Tetris Game Class
339
3
The PieceMover Thread
342
3
The Game Piece Class
345
3
Chapter Summary
348
3
Cross References
348
1
Study Questions
348
1
Exercises
349
2
Applets and Web Programming
351
8
Applets and HTML
351
1
Security Issues
352
1
Applets and Applications
352
2
Obtaining Resources Using an Applet
354
2
Universal Resource Locators
355
1
Loading a New Web Page
356
1
Combining Applications and Applets
356
1
Chapter Summary
357
2
Study Questions
358
1
Exercises
358
1
Network Programming
359
16
Addresses, Ports, and Sockets
359
2
A Simple Client/Server Program
361
3
Multiple Clients
364
5
Transmitting Objects over a Network
369
3
Providing More Complexity
372
1
Chapter Summary
373
2
Study Questions
373
1
Exercises
374
1
What's New in 1.2
375
4
Collection Classes
376
1
Swing User Interface Components
376
1
Improvements to the Graphics Library
376
1
Internationalization
377
1
Java Beans
377
1
Sound
377
1
Databases
377
1
Remote Method Invocation
378
1
Servlets
378
1
Chapter Summary
378
1
Further Reading
378
1
A Java Syntax
379
14
A.1 Program Structure
379
4
A.1.1 Import Declaration
379
1
A.1.2 Class Declaration
380
1
A.1.3 Interface Declaration
381
1
A.1.4 Method Declaration
381
1
A.1.5 Constructors
382
1
A.1.6 Data Field Declaration
383
1
A.2 Statements
383
4
A.2.1 Declaration Statements
383
1
A.2.2 Assignment Statement
384
1
A.2.3 Procedure Calls
384
1
A.2.4 If Statement
384
1
A.2.5 Switch Statement
385
1
A.2.6 While Statement
385
1
A.2.7 For Statement
386
1
A.2.8 Return Statement
386
1
A.2.9 Throw Statement
386
1
A.2.10 Try Statement
387
1
A.3 Expressions
387
6
A.3.1 Literal
387
1
A.3.2 Variable
388
1
A.3.3 Data Field and Method Access
389
1
A.3.4 Operators
389
1
A.3.5 Object Creation
390
1
A.3.6 Arrays
390
3
B Packages in the Java API
393
2
Glossary
395
14
Bibliography
409
4
Index
413