| |
| |
Introduction | |
| |
| |
| |
A Look at How We See the World | |
| |
| |
The Stuff That Stuff Is Made Of | |
| |
| |
Abstract Objects and Instances | |
| |
| |
Why an Object? | |
| |
| |
Inheritance | |
| |
| |
Why Use Inheritance? | |
| |
| |
Objects in the Business World | |
| |
| |
Real-Life Objects and Object-Oriented Programming | |
| |
| |
Quiz | |
| |
| |
| |
What Is a Class? | |
| |
| |
The Object of Objects | |
| |
| |
A Class | |
| |
| |
Defining a Class | |
| |
| |
Attributes | |
| |
| |
Methods | |
| |
| |
Combining a Class with a Program | |
| |
| |
Declaring an Instance of a Class | |
| |
| |
Initializing an Instance Variable | |
| |
| |
Accessing an Instance Variable | |
| |
| |
Assigning a Value to an Instance Variable from Your Program | |
| |
| |
Calling a Method | |
| |
| |
Passing Parameters | |
| |
| |
Using a Return Value | |
| |
| |
Quiz | |
| |
| |
| |
Encapsulation | |
| |
| |
Parts of a Program Come Together | |
| |
| |
What Is Encapsulation? | |
| |
| |
Why Use Encapsulation? | |
| |
| |
Protection Using Access Specifiers | |
| |
| |
Public Access Specifier | |
| |
| |
Private Access Specifier | |
| |
| |
Protected Access Specifier | |
| |
| |
Encapsulation in Action Using C++ | |
| |
| |
Inside the Write() Member Function | |
| |
| |
Inside the Display() Member Function | |
| |
| |
Inside the main() Function | |
| |
| |
Protected Access Specifier in Action | |
| |
| |
Encapsulation in Action Using Java | |
| |
| |
Protected Access Specifier in Action | |
| |
| |
Quiz | |
| |
| |
| |
Methods and Polymorphism | |
| |
| |
Methods | |
| |
| |
Polymorphism | |
| |
| |
Overloading Methods | |
| |
| |
Polymorphism Using C++ | |
| |
| |
Interface | |
| |
| |
Interface Design | |
| |
| |
Binding | |
| |
| |
Run-Time Polymorphism | |
| |
| |
Run-Time Polymorphism in Action | |
| |
| |
Quiz | |
| |
| |
| |
Inheritance | |
| |
| |
Inheritance: The Only Way to Program | |
| |
| |
The Class Hierarchy | |
| |
| |
Types of Inheritance | |
| |
| |
Choosing the Right Type of Inheritance | |
| |
| |
Simple Inheritance Using C++ | |
| |
| |
Simple Inheritance Using Java | |
| |
| |
Level Inheritance Using C++ | |
| |
| |
Level Inheritance Using Java | |
| |
| |
Multiple Inheritance Using C++ | |
| |
| |
Multiple Inheritance Using Java | |
| |
| |
Quiz | |
| |
| |
| |
Abstraction | |
| |
| |
Abstraction: The Enforcer | |
| |
| |
Function vs. Functionality | |
| |
| |
The Power of Abstraction | |
| |
| |
The Abstract Method | |
| |
| |
Abstraction in Action | |
| |
| |
Errors Galore | |
| |
| |
Frameworks, Libraries, and Abstraction | |
| |
| |
Quiz | |
| |
| |
| |
Identifying and Describing Objects | |
| |
| |
An Object | |
| |
| |
Identifying Attributes | |
| |
| |
Describing Attributes | |
| |
| |
Decomposing Attributes to Data | |
| |
| |
Identifying Behaviors | |
| |
| |
Describing Behaviors | |
| |
| |
Class Definition and Class Diagram | |
| |
| |
Relationships Among Objects | |
| |
| |
Entity Relationship Diagram | |
| |
| |
Leveling Diagram | |
| |
| |
Quiz | |
| |
| |
| |
Real-World Modeling | |
| |
| |
Theory vs. the Real World | |
| |
| |
From Simple Beginnings | |
| |
| |
Object-Oriented vs. Procedural Languages | |
| |
| |
Behavior Problems | |
| |
| |
Simulation May Not Be the Objective | |
| |
| |
Internal Model and External Model | |
| |
| |
Hierarchical Problems | |
| |
| |
Task Oriented, Not Object Oriented | |
| |
| |
Self-Contained Data vs. Wide Source of Data | |
| |
| |
The World in Discrete Pieces | |
| |
| |
Do We Think in Objects? | |
| |
| |
OOP and Data | |
| |
| |
Real-World Hierarchy | |
| |
| |
The Morphing of a Hierarchy | |
| |
| |
"Is a" Problems | |
| |
| |
The Real-World Challenges of Object-Oriented Programming | |
| |
| |
Data Storage | |
| |
| |
Common Procedures | |
| |
| |
Defining Objects | |
| |
| |
Hierarchy | |
| |
| |
The Computer World vs. the Real World | |
| |
| |
Quiz | |
| |
| |
| |
Collaboration | |
| |
| |
What Is Collaboration? | |
| |
| |
Inside a Process | |
| |
| |
OOP Collaboration | |
| |
| |
UML Sequence Diagrams | |
| |
| |
Is main() a Class? | |
| |
| |
Student Registration | |
| |
| |
UML Collaboration Diagrams | |
| |
| |
Collaboration and Inheritance | |
| |
| |
Association | |
| |
| |
Self-Collaboration | |
| |
| |
Class Responsibility Collaborator | |
| |
| |
Quiz | |
| |
| |
| |
Case Modeling | |
| |
| |
About Case Modeling | |
| |
| |
Oh No, Not End Users | |
| |
| |
Gathering Requirements | |
| |
| |
The Interview | |
| |
| |
Essential Use Case | |
| |
| |
System Use Case | |
| |
| |
Business Rules | |
| |
| |
User Interface Diagramming | |
| |
| |
User Interface Flow Diagramming | |
| |
| |
User Interface Prototyping | |
| |
| |
Defining Classes from Our Designs | |
| |
| |
Identifying Technical Requirements | |
| |
| |
Change Cases | |
| |
| |
Project Management | |
| |
| |
Clients | |
| |
| |
Projects | |
| |
| |
Work Requests | |
| |
| |
Tasks | |
| |
| |
Estimation | |
| |
| |
Quiz | |
| |
| |
| |
Interfaces | |
| |
| |
Inside Interfaces | |
| |
| |
Interfaces Are Not Classes | |
| |
| |
Interface Diagrams | |
| |
| |
Show Me the HTML | |
| |
| |
A Quick Introduction to HTML | |
| |
| |
The HTMLSource Interface | |
| |
| |
The Classes, Before an Interface Is Implemented | |
| |
| |
Implementing Interfaces in Java and C# | |
| |
| |
Bringing It All Together | |
| |
| |
What About C++? | |
| |
| |
Components | |
| |
| |
Standard Interfaces | |
| |
| |
Standard Java Interfaces | |
| |
| |
Standard C# Interfaces | |
| |
| |
Ultimate Base Classes | |
| |
| |
Quiz | |
| |
| |
| |
Object-Oriented Programming Languages | |
| |
| |
A History of Computers and Programming | |
| |
| |
The Three Dominant Modern OOPLs | |
| |
| |
C++ | |
| |
| |
Java | |
| |
| |
C# | |
| |
| |
Quiz | |
| |
| |
Final Exam | |
| |
| |
Answers to Quizzes and Final Exam | |
| |
| |
Chapter 1 | |
| |
| |
Chapter 2 | |
| |
| |
Chapter 3 | |
| |
| |
Chapter 4 | |
| |
| |
Chapter 5 | |
| |
| |
Chapter 6 | |
| |
| |
Chapter 7 | |
| |
| |
Chapter 8 | |
| |
| |
Chapter 9 | |
| |
| |
Chapter 10 | |
| |
| |
Chapter 11 | |
| |
| |
Chapter 12 | |
| |
| |
Answers to Final Exam | |
| |
| |
Classes in Java | |
| |
| |
Interfaces | |
| |
| |
Packages | |
| |
| |
Classes in C++ | |
| |
| |
Constructor and Destructor | |
| |
| |
Member Functions | |
| |
| |
Inline Functions | |
| |
| |
Unions, Structs, and Classes | |
| |
| |
Objects and Functions, Copy Constructors | |
| |
| |
Enums Inside Classes | |
| |
| |
Static Members | |
| |
| |
Class Definitions in C# | |
| |
| |
Destructors and Garbage Collection | |
| |
| |
Assemblies | |
| |
| |
Index | |