| Preface |
I | Basic Design with Objects |
2 | Objects = Data + Function |
3 | Classes of Objects: Data Definitions |
4 | Classes of Objects: Interface Definitions |
5 | Pac Man |
6 | Parameterized Data and Interfaces |
7 | Solidifying what we’ve done |
VIII | Abstraction with Objects |
9 | Abstraction via Delegation |
10 | Abstraction via Inheritance |
XI | Invariants |
12 | Invariants, Testing, and Abstraction Barriers |
XIII | Schemes of a Larger Design |
14 | Larger system design: Snakes on a plane |
15 | Universe |
16 | Guess my number |
17 | Visitors and Folds |
XVIII | Mutation |
19 | Ch-Ch-Ch-Ch-Changes |
20 | Circular Data |
21 | Back-channels |
22 | Intensional equality |
XXIII | Java |
24 | Java |
25 | ??? |
26 | Extensional Equality in Java |
27 | Iterating over Data |
XXVIII | A Class of Your Own |
29 | Under the Hood: Implementing OO |
XXX | Solutions |
31 | Solutions |
| Index |