Beginning Java Objects: From Concepts to Code / Edition 1

Beginning Java Objects: From Concepts to Code / Edition 1

by Jacquie Barker
     
 

ISBN-10: 1590591461

ISBN-13: 9781590591468

Pub. Date: 07/01/2003

Publisher: Apress

Export author Barker covers information key for proficiency with an OO programming language like Java, and shows how to really create reusable code and extensible applications.

Overview

Export author Barker covers information key for proficiency with an OO programming language like Java, and shows how to really create reusable code and extensible applications.

Product Details

ISBN-13:
9781590591468
Publisher:
Apress
Publication date:
07/01/2003
Edition description:
2000
Pages:
688
Product dimensions:
7.00(w) x 9.25(h) x 1.45(d)

Table of Contents

Introduction1
Goals for this Book1
Why Is Understanding Objects So Critical To Being a Successful OO Programmer?2
Who Is This Book Written For?3
What if You are Interested in Object Modeling, But Not Necessarily in Java Programming?5
How This Book is Organized5
Part 15
Part 25
Part 35
Conventions6
Which Version of Java is this Book Based On?6
A Final Thought Before We Get Started7
Tell Us What You Think7
Student Registration System Case Study8
Part 1The ABC's of Objects11
Chapter 1A Little Taste of Java13
Why Java?14
Java Language Basics23
Getting 'Hands On' With Java43
Summary44
Exercises45
Chapter 2Abstraction and Modeling47
Simplification Through Abstraction47
Generalization Through Abstraction48
Reuse of Abstractions52
Inherent Challenges53
Summary55
Exercises56
Chapter 3Objects and Classes59
What Is an Object?59
Data/State/Attributes60
Behavior/Operations/Methods61
Classes63
Instantiation64
Encapsulation66
Objects vs. Database Records66
Classes as Abstract Data Types67
Instantiating Objects: A Closer Look69
Objects as Attributes73
Composite Classes74
Three Distinguishing Features of an Object-Oriented Programming Language77
Summary77
Exercises78
Chapter 4Object Interactions81
Events Drive Object Collaboration81
Method Signatures83
Message Passing and Dot Notation87
Accessing Attributes via Dot Notation88
Delegation89
Access to Objects90
Objects as Clients and Servers/Agents92
Information Hiding/Visibility93
Accessor and Modifier Methods96
Exceptions to the Public/Private Rule99
Encapsulation Revisited102
Constructors107
Summary109
Exercises110
Chapter 5Relationships Between Objects113
Associations and Links113
Rules for Deriving Classes: The 'Do's'130
Rules for Deriving Classes: The 'Don'ts'133
A Few Words About Multiple Inheritance135
Three Distinguishing Features of an Object-Oriented Programming Language, Take 2139
Summary139
Exercises140
Chapter 6Collections of Objects143
What are Collections?143
Inventing Your Own Collection Types153
Collections as Method Return Types156
Collections of Supertypes157
Composite Classes, Revisited158
Summary160
Exercises161
Chapter 7Some Final Concepts163
What is Polymorphism?164
Three Distinguishing Features of an Object-Oriented Programming Language169
Abstract Classes169
Interfaces175
Static Attributes179
Summary185
Exercises186
Part 2Object Modelling 101189
Chapter 8The Object Modeling Process in a Nutshell191
The 'Big Picture' Goal of Object Modeling191
Our Object Modeling Process, in a Nutshell194
Summary197
Exercises198
Chapter 9Formalizing Requirements through Use Cases201
What are Use Cases?202
Actors203
Specifying Use Cases207
Matching Up Use Cases with Actors208
To Diagram or Not to Diagram?209
Summary210
Exercises210
Chapter 10Modeling the Static/ Data Aspects of the System213
Identifying Appropriate Classes214
Producing a Data Dictionary225
Determining Associations Between Classes226
Identifying Attributes230
UML Notation: Modeling the Static Aspects of an Abstraction230
Object Diagrams241
Information 'Flows' Along the Association 'Pipeline'244
'Mixing and Matching' Relationship Notations248
Association Classes250
Our 'Completed' Student Registration System Class Diagram252
Metadata258
Comparing UML and OMT Notations259
Summary260
Exercises261
Chapter 11Modeling the Dynamic/Behavioral Aspects of the System263
How Behavior Affects State264
Events266
Scenarios268
Sequence Diagrams272
Using Sequence Diagrams to Determine Methods277
Collaboration Diagrams279
Revised SRS Class Diagram280
Summary281
Exercises282
Chapter 12Wrapping Up Our Modeling Efforts285
Testing Your Model285
A Shortcoming in our Model286
Reusing Models: A Word About Design Patterns288
Summary290
Exercises291
Part 3Translating an Object 'Blueprint' into Java Code293
Chapter 13A Deeper Look At Java295
Setting Up a Java Programming Environment296
Anatomy of a Java Program, Revisited297
Anatomy of a Java Class305
Strings as Objects311
Java Expressions, Revisited314
Printing to the Screen, Revisited316
Arrays, Revisited316
Java Exception Handling320
Reading Data from the Command Line322
Accepting Keyboard Input324
Using constructors326
Using the 'this' Keyword for Object Self-Referencing330
Object Deletion and Garbage Collection333
Inheritance and Java335
Java's Collection Classes343
The 'final' Keyword353
Abstract Classes and Interfaces, Revisited356
Object Identities358
The toString() Method364
Inner Classes365
Summary368
Exercises370
Chapter 14Transforming Your Model into Java Code375
Suggestions for Getting the Maximum Value out of This and Subsequent Chapters376
The SRS Class Diagram, Revisited376
Debugging Tip421
Summary423
Exercises424
Chapter 15Rounding Out Your Application, Part 1 - Adding File Persistence427
What is File Persistence?428
CollectionWrapper (Encapsulating Collections; Reading from an ASCII File)436
Summary468
Exercises469
Chapter 16Rounding Out Your Application, Part 2 - Adding a Graphical User Interface471
Java GUIs: a Primer472
Java Event Handling522
Selecting an Item from a JList538
More Container Types: JDialog and JOptionPane545
One Step Dialogs with JOptionPane550
SRS, Take 3: Adding a GUI553
Summary597
Exercises598
Chapter 17Next Steps601
Jacquie's 'Tried and True' Method for Learning Java Properly602
Recommended Reading603
Your Comments, Please!604
Part 4Appendices607
Appendix ASuggestions for Using This Book as a Textbook609
Appendix BAlternative Case Studies613
Case Study #1Conference Room Reservation System613
Case Study #2Blue Skies Airline Reservation System615
Appendix CSetting Up a Basic Object Modeling/Java Environment619
Object Modeling Tools619
The Java Software Developer's Kit619
'Odds and Ends' Tips for Getting Java Working620
Using the On-Line Java Documentation with Windows625
Special Tips for Using DOS Under Microsoft Windows626
Appendix DSRS Source Code631
Downloading the Example Code631
Appendix ENote to Experienced C++ Programmers635
Appendix FHow Polymorphism Works641
Index651

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >