1.1 Introduction to OOP
Traditionally, code has been written as sequential instructions, much like a recipe. Code may be grouped into blocks and functions, and flow may be controlled using conditionals, loops and function calls. However, this paradigm is not a natural way for us to think about data.
With Object-oriented Programming (OOP), code and data are grouped together into objects, which interact with each other through 'messages' sent and received through publicly exposed interfaces. For example, a client object can checkout a book object from a library object. As you can see, we can immediately relate to and conceptualize the objects and data involved with this object-oriented way of thinking about programming.
As a further introduction, here is a video simplifying the concepts of objects, data, code and messages.
Classes vs Objects
Many students initially find the terminology a bit confusing as first, especially between classes and objects, as they appear at first to be one and the same.
A class is simply a class of objects. You can think of a class as a recipe or description of a type of object. For example, the recipe for chocolate cake is not, itself, a chocolate cake, but rather it is a description of a type of cake.
An object is a specific instance of a class. Following on from our previous illustration, each time you bake a cake following the chocolate cake recipe, the result is a chocolate cake. Even though all cakes are made using the recipe, they are all different in subtle ways, and exist in different locations. Similarly, objects in code are instances of a specific class definition.
In the next section, we will learn how to design classes.
Identify the objects and classes involved in:
- sending money from one person to another via internet banking.
- sending an email to someone in your contact list.
- posting a message your Facebook friend's wall.