Summary
In this chapter, we took a whirlwind tour through the terminology of the object-oriented paradigm, focusing on object-oriented design. We learned how to separate different objects into a taxonomy of different classes and to describe the attributes and behaviors of those objects via the class interface. In particular, we covered:
Classes and objects
Abstraction, encapsulation, and information hiding
Designing a public interface
Object relations: association, composition, and inheritance
Basic UML syntax for fun and communication
In the next chapter, we'll explore how to implement classes and methods in Python.