Object-Orientation ...
An object-oriented design decomposes the data & operations into “independent” objects such that
- For each object O, every other object interacts with O via the same interface.
- That interface is “controlled” by O’s class definition.