Understanding object-oriented programming with Java

Updated ed, [International ed].
  • 11 Want to read

My Reading Lists:

Create a new list

  • 11 Want to read

Buy this book

Last edited by MARC Bot
July 11, 2024 | History

Understanding object-oriented programming with Java

Updated ed, [International ed].
  • 11 Want to read

"This updated edition of Understanding Object-Oriented Programming with Java develops the object-oriented programming skills of experienced programmers by showing them how to use Java 2, the latest release of Sun's Java platform. Dr. Budd provides a complete understanding of the philosophy behind Java 2 and teaches readers why the Java language works the way it does, unlike many other authors who focus only on how Java works.

The book begins by covering the language-independent concepts that are at the heart of the Java world and then moves on to introducing Java through several example programs. This is followed by an in-depth discussion of inheritance and polymorphism. The book concludes with material on important features of Java that are not object-oriented."--BOOK JACKET.

Publish Date
Publisher
Addison-Wesley
Language
English

Buy this book

Previews available in: English

Edition Availability
Cover of: Understanding object-oriented programming with Java
Understanding object-oriented programming with Java
2003, Addison-Wesley
in English - Updated ed, [International ed].
Cover of: Understanding object-oriented programming with Java
Understanding object-oriented programming with Java
2002, Addison-Wesley
in English - 2nd updated ed. for the Open University.
Cover of: Understanding object-oriented programming with Java
Understanding object-oriented programming with Java
2000, Addison-Wesley
in English - Updated ed.
Cover of: Understanding Object-Oriented Programming With Java
Understanding Object-Oriented Programming With Java: Updated Edition (New Java 2 Coverage)
August 3, 1999, Addison Wesley
in English
Cover of: Understanding object-oriented programming with Java
Understanding object-oriented programming with Java
1998, Addison-Wesley
in English

Add another edition?

Book Details


Table of Contents

Preface
Page v
I. Understanding the Object-Oriented Worldview
Page 1
1. Object-Oriented Thinking
Page 3
1.1. A Way of Viewing the World
Page 3
1.1.1. Agents and Communities
Page 4
1.1.2. Messages and Methods
Page 5
1.1.3. Responsibilities
Page 6
1.1.4. Classes and Instances
Page 6
1.1.5. Class Hierarchies: Inheritance
Page 7
1.1.6. Method Binding, Overriding, and Exceptions
Page 8
1.1.7. Summary of Object-Oriented Concepts
Page 9
1.2. Computation as Simulation
Page 10
1.2.1. The Power of Metaphor
Page 11
1.3. Chapter Summary
Page 12
Further Reading
Page 13
Study Questions
Page 14
Exercises
Page 14
2. A Brief History of Object-Oriented Programming
Page 17
2.1. The History of Java
Page 18
2.2. Client-Side Computing
Page 19
2.2.1. Bytecode Interpreters and Just-In-Time Compilers
Page 21
2.2.2. Security Issues
Page 21
2.2.3. Specialization of Interfaces
Page 22
2.3. The White Paper Description
Page 22
2.3.1. Java Is Simple
Page 22
2.3.2. Java Is Object-Oriented
Page 23
2.3.3. Java Is Network Savvy
Page 23
2.3.4. Java Is Interpreted
Page 23
2.3.5. Java Is Robust
Page 24
2.3.6. Java Is Secure
Page 25
2.3.7. Java Is Architecture Neutral
Page 25
2.3.8. Java Is Portable
Page 25
2.3.9. Java Is High-Performance
Page 26
2.3.10. Java Is Multithreaded
Page 26
2.3.11. Java Is Dynamic
Page 26
2.4. Chapter Summary
Page 26
Study Questions
Page 26
Exercises
Page 27
3. Object-Oriented Design
Page 29
3.1. Responsibility Implies Noninterference
Page 29
3.2. Programming in the Small and in the Large
Page 30
3.3. Why Begin with Behavior?
Page 31
3.4. A Case Study in RDD
Page 32
3.4.1. The Interactive Intelligent Kitchen Helper
Page 32
3.4.2. Working With Components
Page 33
3.4.3. Identification of Components
Page 33
3.5. CRC Cards—Recording Responsibility
Page 34
3.5.1. Giving Components a Physical Representation
Page 34
3.5.2. The What/Who Cycle
Page 35
3.5.3. Documentation
Page 35
3.6. Components and Behavior
Page 36
3.6.1. Postponing Decisions
Page 37
3.6.2. Preparing for Change
Page 37
3.6.3. Continuing the Scenario
Page 38
3.6.4. Interaction Diagrams
Page 40
3.7. Software Components
Page 41
3.7.1. Behavior and State
Page 41
3.7.2. Instances and Classes
Page 42
3.7.3. Coupling and Cohesion
Page 42
3.7.4. Interface and Implementation: Parnas's Principles
Page 43
3.8. Formalizing the Interface
Page 44
3.8.1. Coming Up with Names
Page 44
3.9. Designing the Representation
Page 46
3.10. Implementing Components
Page 46
3.11. Integration of Components
Page 47
3.12. Maintenance and Evolution
Page 48
3.13. Chapter Summary
Page 48
Study Questions
Page 49
Exercises
Page 50
II. Understanding Paradigms
Page 51
4. A Paradigm
Page 53
4.1. Program Structure
Page 54
4.2. The Connection to the Java World
Page 56
4.3. Types
Page 57
4.4. Access Modifiers
Page 59
4.5. Lifetime Modifiers
Page 61
4.6. Chapter Summary
Page 61
Cross References
Page 62
Study Questions
Page 63
Exercises
Page 63
5. Ball Worlds
Page 67
5.1. Data Fields
Page 70
5.2. Constructors
Page 71
5.2.1. Constructing the Application
Page 74
5.3. Inheritance
Page 74
5.4. The Java Graphics Model
Page 76
5.5. The Class Ball
Page 77
5.6. Multiple Objects of the Same Class
Page 78
5.7. Chapter Summary
Page 80
Cross References
Page 81
Study Questions
Page 81
Exercises
Page 82
6. A Cannon Game
Page 83
6.1. The Simple Cannon Game
Page 84
6.1.1. Balls That Respond to Gravity
Page 88
6.1.2. Integers and ints
Page 89
6.2. Adding User Interaction
Page 89
6.2.1. Inner Classes
Page 90
6.2.2. Interfaces
Page 91
6.2.3. The Java Event Model
Page 93
6.2.4. Window Layout
Page 94
6.3. Chapter Summary
Page 95
Cross References
Page 96
Study Questions
Page 97
Exercises
Page 97
7. Pinball Game Construction Kit
Page 99
7.1. First Version of Game
Page 99
7.1.1. Collection Classes
Page 100
7.1.2. Mouse Listeners
Page 103
7.1.3. Multiple Threads of Execution
Page 104
7.1.4. Exception Handling
Page 106
7.2. Adding Targets: Inheritance and Interfaces
Page 107
7.2.1. The Pinball Target Interface
Page 107
7.2.2. Adding a Label to Our Pinball Game
Page 112
7.3. Pinball Game Construction Kit: Mouse Events Reconsidered
Page 116
7.4. Chapter Summary
Page 118
Cross References
Page 118
Study Questions
Page 119
Exercises
Page 119
III. Understanding Inheritance
Page 121
8. Understanding Inheritance
Page 123
8.1. An Intuitive Description of Inheritance
Page 123
8.2. The Base Class Object
Page 124
8.3. Subclass, Subtype, and Substitutability
Page 125
8.4. Forms of Inheritance
Page 126
8.4.1. Inheritance for Specialization
Page 127
8.4.2. Inheritance for Specification
Page 127
8.4.3. Inheritance for Construction
Page 129
8.4.4. Inheritance for Extension
Page 131
8.4.5. Inheritance for Limitation
Page 131
8.4.6. Inheritance for Combination
Page 132
8.4.7. Summary of the Forms of Inheritance
Page 133
8.5. Modifiers and Inheritance
Page 134
8.6. Programming as a Multiperson Activity
Page 135
8.7. The Benefits of Inheritance
Page 135
8.7.1. Software Reusability
Page 135
8.7.2. Increased Reliability
Page 135
8.7.3. Code Sharing
Page 136
8.7.4. Consistency of Interface
Page 136
8.7.5. Software Components
Page 136
8.7.6. Rapid Prototyping
Page 136
8.7.7. Polymorphism and Frameworks
Page 137
8.7.8. Information Hiding
Page 137
8.8. The Costs of Inheritance
Page 137
8.8.1. Execution Speed
Page 137
8.8.2. Program Size
Page 138
8.8.3. Message-Passing Overhead
Page 138
8.8.4. Program Complexity
Page 138
8.9. Chapter Summary
Page 138
Study Questions
Page 139
Exercises
Page 140
9. A Case Study: Solitaire
Page 141
9.1. The Class Card
Page 141
9.2. The Game
Page 143
9.3. Card Piles—Inheritance in Action
Page 146
9.3.1. The Suit Piles
Page 149
9.3.2. The Deck Pile
Page 149
9.3.3. The Discard Pile
Page 151
9.3.4. The Tableau Piles
Page 151
9.4. The Application Class
Page 155
9.5. Playing the Polymorphic Game
Page 156
9.6. Building a More Complete Game
Page 158
9.7. Chapter Summary
Page 158
Study Questions
Page 159
Exercises
Page 159
10. Mechanisms for Software Reuse
Page 161
10.1. Substitutability
Page 161
10.1.1. The Is-a Rule and the Has-a Rule
Page 163
10.1.2. Inheritance of Code and Inheritance of Behavior
Page 163
10.2. Composition and Inheritance Described
Page 164
10.2.1. Using Composition
Page 166
10.2.2. Using Inheritance
Page 167
10.3. Composition and Inheritance Contrasted
Page 168
10.4. Combining Inheritance and Composition
Page 170
10.5. Novel Forms of Software Reuse
Page 171
10.5.1. Dynamic Composition
Page 172
10.5.2. Inheritance of Inner Classes
Page 173
10.5.3. Unnamed Classes
Page 174
10.6. Chapter Summary
Page 175
Study Questions
Page 176
Exercises
Page 176
11. Implications of Inheritance
Page 177
11.1. The Polymorphic Variable
Page 178
11.2. Memory Layout
Page 179
11.2.1. An Alternative Technique
Page 181
11.3. Assignment
Page 182
11.3.1. Clones
Page 183
11.3.2. Parameters as a Form of Assignment
Page 185
11.4. Equality Test
Page 186
11.5. Garbage Collection
Page 189
11.6. Chapter Summary
Page 190
Study Questions
Page 190
Exercises
Page 191
IV. Understanding Polymorphism
Page 193
12. Polymorphism
Page 195
12.1. Varieties of Polymorphism
Page 195
12.2. Polymorphic Variables
Page 196
12.3. Overloading
Page 197
12.3.1. Overloading Messages in Real Life
Page 197
12.3.2. Overloading and Coercion
Page 197
12.3.3. Overloading from Separate Classes
Page 198
12.3.4. Parametric Overloading
Page 199
12.4. Overriding
Page 200
12.4.1. Replacement and Refinement
Page 200
12.5. Abstract Methods
Page 201
12.6. Pure Polymorphism
Page 202
12.7. Efficiency and Polymorphism
Page 203
12.8. Chapter Summary
Page 204
Further Reading
Page 204
Study Questions
Page 205
Exercises
Page 205
13. The AWT
Page 207
13.1. The AWT Class Hierarchy
Page 207
13.2. The Layout Manager
Page 210
13.2.1. Layout Manager Types
Page 211
13.3. User Interface Components
Page 213
13.3.1. Labels
Page 213
13.3.2. Button
Page 214
13.3.3. Canvas
Page 215
13.3.4. Scroll Bars
Page 215
13.3.5. Text Components
Page 216
13.3.6. Checkbox
Page 217
13.3.7. Checkbox Groups, Choices, and Lists
Page 218
13.4. Panels
Page 220
13.4.1. ScrollPane
Page 221
13.5. Case Study: A Color Display
Page 222
13.6. Dialogs
Page 226
13.6.1. Example Program for Dialogs
Page 226
13.7. The Menu Bar
Page 227
13.7.1. A Quit Menu Facility
Page 229
13.8. Chapter Summary
Page 231
Study Questions
Page 231
Exercises
Page 232
14. Input and Output Streams
Page 233
14.1. Streams versus Readers and Writers
Page 233
14.2. Input Streams
Page 234
14.2.1. Physical Input Streams
Page 235
14.2.2. Virtual Input Streams
Page 235
14.3. Stream Tokenizer
Page 238
14.4. Output Streams
Page 239
14.5. Object Serialization
Page 242
14.6. Piped Input and Output
Page 244
14.7. Readers and Writers
Page 249
14.8. Chapter Summary
Page 251
Study Questions
Page 252
Exercises
Page 252
15. Design Patterns
Page 255
15.1. Adapter
Page 255
15.2. Composite
Page 256
15.3. Strategy
Page 258
15.4. Observer
Page 259
15.5. Flyweight
Page 260
15.6. Abstract Factory
Page 260
15.7. Factory Method
Page 261
15.8. Iterator
Page 261
15.9. Decorator (Filter or Wrapper)
Page 263
15.10. Proxy
Page 264
15.11. Bridge
Page 264
15.12. Chapter Summary
Page 265
Further Reading
Page 265
Study Questions
Page 265
Exercise
Page 266
V. Understanding the Java World
Page 267
16. Exception Handling
Page 269
16.1. Information Transmitted to the Catch Block
Page 271
16.2. Catching Multiple Errors
Page 271
16.3. The Finally Clause
Page 272
16.4. Termination or Resumptive Models
Page 272
16.5. Exceptions Thrown in the Standard Library
Page 273
16.6. Throwing Exceptions
Page 274
16.7. Passing On Exceptions
Page 275
16.8. Chapter Summary
Page 276
Study Questions
Page 276
Exercises
Page 276
17. Utility Classes
Page 277
17.1. Point
Page 277
17.2. Dimension
Page 278
17.3. Date
Page 278
17.3.1. After the Epoch
Page 279
17.4. Math
Page 280
17.5. Random
Page 281
17.6. Toolkit
Page 282
17.7. System
Page 283
17.8. Strings and Related Classes
Page 283
17.8.1. Operations on Strings
Page 284
17.8.2. String Buffers
Page 287
17.8.3. String Tokenizers
Page 288
17.8.4. Parsing String Values
Page 289
17.9. Chapter Summary
Page 289
Study Questions
Page 290
18. Understanding Graphics
Page 291
18.1. Color
Page 291
18.2. Rectangles
Page 292
18.2.1. Rectangle Sample Program
Page 293
18.3. Fonts
Page 295
18.3.1. Font Metrics
Page 297
18.3.2. Font Example Program
Page 297
18.4. Images
Page 300
18.4.1. Animation
Page 301
18.5. Graphics Contexts
Page 302
18.6. A Simple Painting Program
Page 304
18.7. Chapter Summary
Page 306
Study Questions
Page 309
Exercises
Page 309
19. Collection Classes
Page 311
19.1. Element Types and Primitive Value Wrappers
Page 311
19.2. Enumerators
Page 313
19.3. The Array
Page 314
19.4. The Vector Collection
Page 315
19.4.1. Using a Vector as an Array
Page 315
19.4.2. Using a Vector as a Stack
Page 317
19.4.3. Using a Vector as a Queue
Page 317
19.4.4. Using a Vector as a Set
Page 318
19.4.5. Using a Vector as a List
Page 319
19.5. The Stack Collection
Page 319
19.6. The BitSet Collection
Page 320
19.6.1. Example Program: Prime Sieve
Page 321
19.7. The Dictionary Interface and the Hashtable Collection
Page 321
19.7.1. Example Program: A Concordance
Page 323
19.7.2. Properties
Page 325
19.8. Why Are There No Ordered Collections?
Page 326
19.9. Building Your Own Containers
Page 328
19.10. Chapter Summary
Page 331
Study Questions
Page 331
Exercises
Page 332
20. Multiple Threads of Execution
Page 333
20.1. Creating Threads
Page 333
20.1.1. Synchronizing Threads
Page 337
20.2. Case Study: A Tetris Game
Page 338
20.2.1. The Tetris Game Class
Page 339
20.2.2. The PieceMover Thread
Page 342
20.2.3. The Game Piece Class
Page 345
20.3. Chapter Summary
Page 348
Cross References
Page 348
Study Questions
Page 348
Exercises
Page 349
21. Applets and Web Programming
Page 351
21.1. Applets and HTML
Page 351
21.2. Security Issues
Page 352
21.3. Applets and Applications
Page 352
21.4. Obtaining Resources Using an Applet
Page 354
21.4.1. Universal Resource Locators
Page 355
21.4.2. Loading a New Web Page
Page 356
21.5. Combining Applications and Applets
Page 356
21.6. Chapter Summary
Page 357
Study Questions
Page 358
Exercises
Page 358
22. Network Programming
Page 359
22.1. Addresses, Ports, and Sockets
Page 359
22.2. A Simple Client/Server Program
Page 361
22.3. Multiple Clients
Page 364
22.4. Transmitting Objects over a Network
Page 369
22.5. Providing More Complexity
Page 372
22.6. Chapter Summary
Page 373
Study Questions
Page 373
Exercises
Page 374
23. What's New in 1.2
Page 375
23.1. Collection Classes
Page 376
23.2. Swing User Interface Components
Page 376
23.3. Improvements to the Graphics Library
Page 376
23.4. Internationalization
Page 377
23.5. Java Beans
Page 377
23.6. Sound
Page 377
23.7. Databases
Page 377
23.8. Remote Method Invocation
Page 378
23.9. Servlets
Page 378
23.10. Chapter Summary
Page 378
Further Reading
Page 378
A. Java Syntax
Page 379
A.1. Program Structure
Page 379
A.1.1. Import Declaration
Page 379
A.1.2. Class Declaration
Page 380
A.1.3. Interface Declaration
Page 381
A.1.4. Method Declaration
Page 381
A.1.5. Constructors
Page 382
A.1.6. Data Field Declaration
Page 383
A.2. Statements
Page 383
A.2.1. Declaration Statement
Page 383
A.2.2. Assignment Statement
Page 384
A.2.3. Procedure Calls
Page 384
A.2.4. If Statement
Page 384
A.2.5. Switch Statement
Page 385
A.2.6. While Statement
Page 385
A.2.7. For Statement
Page 386
A.2.8. Return Statement
Page 386
A.2.9. Throw Statement
Page 386
A.2.10. Try Statement
Page 387
A.3. Expressions
Page 387
A.3.1. Literal
Page 387
A.3.2. Variable
Page 388
A.3.3. Data Field and Method Access
Page 389
A.3.4. Operators
Page 389
A.3.5. Object Creation
Page 390
A.3.6. Arrays
Page 390
B. Packages in the Java API
Page 393
Glossary
Page 395
Bibliography
Page 409
Index
Page 413

Edition Notes

With new Java 2 coverage.

Published in
Reading, Mass

Classifications

Dewey Decimal Class
005.117
Library of Congress
QA76.64 .B835 2000

Edition Identifiers

Open Library
OL16225538M
Internet Archive
understandingobj0000budd
ISBN 10
032121174X
LCCN
99032136
LibraryThing
294475
Goodreads
1185707

Work Identifiers

Work ID
OL2642456W

Excerpts

This is a book about object-oriented programming.
added anonymously.

Community Reviews (0)

No community reviews have been submitted for this work.

Lists

History

Download catalog record: RDF / JSON
July 11, 2024 Edited by MARC Bot import existing book
October 21, 2021 Edited by ImportBot import existing book
August 23, 2020 Edited by ImportBot import existing book
April 28, 2010 Edited by Open Library Bot Linked existing covers to the work.
December 10, 2009 Created by WorkBot add works page