Sams Teach Yourself Object Oriented Programming in 21 Days differs from other OOP books in two main ways. Many classic OOP books are designed for software engineers and teach at an academic level. Sams Teach Yourself Object Oriented Programming in 21 Days presents accessible, user-friendly lessons designed with the beginning programmer in mind. Other OOP books work to present both OOP and to teach a programming language (for example: Object-Oriented Programming in C++). Although Sams Teach Yourself Object Oriented Programming in 21 Days uses Java to present the examples, the book is designed to present concepts that apply to any OOP environment.
(NOTE: Each chapter ends with a Summary, Q&A, and Workshop.)
About the Examples. What You Need to Know to Use This Book.
Section I: Defining OO.Day 1. Introduction to Object Oriented Programming.
Object Oriented Programming in a Historical Context. Benefits and Goals of OO. Pitfalls. The Week Ahead.Day 2. Encapsulation: Learn to Keep the Details to Yourself.
The Three Pillars of Object Oriented Programming. Encapsulation: The First Pillar. Abstraction: Learning to Think and Program Abstractly. Keeping Your Secrets Through Implementation Hiding. Division of Responsibility: Minding Your Own Business. Encapsulation Tips and Pitfalls. Caveats.Day 3. Encapsulation: Time to Write Some Code.
Lab 1: Setting Up the Java Environment. Lab 2: Class Basics. Lab 3: Encapsulation Roundup. Lab 4: Case Study-The Java Primitive Wrappers (Optional).Day 4. Inheritance: Getting Something for Nothing.
What Is Inheritance? Why Inheritance? <192>Is-A<192> Versus <192>Has-A<192>: Learning When to Use Inheritance. Learning to Navigate Inheritance's Tangled Web. Types of Inheritance. Inheritance for Implementation. Tips to Effective Inheritance. How Inheritance Fulfills the Goals of OO.Day 5. Inheritance: Time to Write Code.
Lab 1: Simple Inheritance. Lab 2: Using Abstract Classes for Planned Inheritance. Lab 3: Bank Account—Practicing Simple Inheritance. Lab 4: Case Study—<192>Is-A,<192> <192>Has-A<192>, and the java.util.Stack.Day 6. Polymorphism: Learning to Predict the Future.
Polymorphism. Inclusion Polymorphism. Parametric Polymorphism. Overriding. Overloading. Effective Polymorphism. Polymorphic Pitfalls. Caveats. Ho Polymorphism Fullfills the Goals of OO.Day 7. Polymorphism: Time to Write Some Code.
Lab 1: Applying Polymorphism. Lab 2: Bank Account—Applying Polymorphism to a Familiar Example. Lab 3: Bank Account—Using Polymorphism to Write Future-Proof Code. Lab 4: Case Study—The Java Switch and Polymorphism.
Section II: Learning to Apply OOP.Day 8. Introduction to the UML
Introduction to the Unified Modeling Language. Modeling Your Classes. Modeling a Class Relationship. Putting It All Together.Day 9. Introduction to Object Oriented Analysis.
The Software Development Process. Object Oriented Analysis (OOA). So Now What?Day 10.Introduction to Object Oriented Design (OOD).
Object Oriented Design (OOD). How Do You Apply OOD?Day 11. Reusing Designs Through Design Patterns.
Design Reuse. Design Patterns. Pattern Realities. Patterns by Example. Making a Pattern Yours. Answers to Quiz. Answers to Exercises.Day 12. Advanced Design Patterns.
More Patterns by Example. Pattern Pitfalls. Answers to Quiz. Answers to Exercises.Day 13. OO and User Interface Programming.
OOP and the User Interface. The Importance of Decoupled UIs. How to Decouple the UI Using the Model View Controller Pattern. Problems with the Model View Controller.Day 14. Building Reliable Software Through Testing.
Testing OO Software. Testing and the Iterative Software Development Process. Forms of Testing. A Guide to Writing Reliable Code.
Section III: Putting it all together: A Complete OO Project.Day 15. Learning to Combine Theory and Process.
Blackjack. Initial Blackjack Analysis. Planning the Iterations. Iteration 1: Basic Game Play.Day 16. Blackjack Iteration 2: Adding Rules.
Blackjack Rules.Day 17. Blackjack Iteration 3: Adding Betting.
Blackjack Betting.Day 18. Blackjack Iteration 4: Adding a GUI.
Blackjack Presentation. Command Line Tweaks. Blackjack Analysis.Day 19. Applying an Alternative to MVC.
An Alternative Blackjack GUI. Analyzing the PAC Blackjack GUI. Designing the PAC Blackjack GUI.Day 20. Having Some Fun with Blackjack.
Having Fun with Polymorphism. OOP and Simulations.Day 21. The Final Mile.
Tying Up the Loose Ends.
The errata for the book is available here in Adobe Portable Document Format (PDF) format. You will need Adobe's Acrobat Reader to view these files. If you do not have the Acrobat Reader installed, you may go to Adobe Systems' web site to download this free reader.
Click on the links below to display the PDF file in a new window. Right-click on the link and select Save As if you want to download it to your hard drive.Errata for the book - 26 kb -- 0672321092errata.pdf