Object-oriented Programming (OOP)
So far, we have been doing what is called Imperative Programming and Procedural Programming. This is where we type a series of commands (imperative = issuing commands), and where we create procedures (functions) to separate our code to make it easier to manage and also to make it reusable.
This week, we investigate Object-oriented Design and Object-oriented Programming. In Object-oriented Programming, we go further than just separating our code into functions: we think in terms of classes of object and collect all of the data and functionality together within the classes.
Example class hierarchy diagram, with a Python implementation of a class.