|
Chapter: Object
Oriented Programming
Object Oriented Programming
Object Oriented Programming is a modern day programming paradigm,
meaning that it is a fundamental style that suits the task of creating
modern software. Most popular modern programming languages support OOP
(Object Oriented Programming), and as a result understanding the
fundamental concepts that define it within Processing can help in
implementing it, by means of adapting your knowledge to suite any
programming language that supports Object Oriented Programming.
Earlier we discussed that OOP can be contrasted with Procedural
Programming if you consider that Procedural Programming is a style of
programming where the program is tailored to suite the data as opposed
to Object Oriented Programming which is more akin to a style of
programming where the data is tailored to suite the program. To briefly
recap on these concepts, typically when creating programs using the
procedural programming paradigm we use the programming language's
built-in API features and associate the data we are representing in our
program with the features that are defined by the developers of the
language. The data that is associated with the API features is what we
then use in our main program. This is in contrast to the object
oriented programming paradigm where we define new types of data (called
classes) to categorize and associate the data we are representing in
our programs with the programming languages built-in API features. We
then use instantiations of the classes called software objects in our
main program.
From this description you can see that the results of both programming
paradigms can eventually lead to the same thing, however the process of
getting to that result is what distinguishes one programming paradigm
from that of another.
A graphical
representation of how OOP can contrast Procedural Programming
OOP as you are aware relies on classes, from which we instantiate
objects. These objects are the reason why we refer to this programming
paradigm as Object Oriented Programming, and emphasize the “Object”
part. We have already been using classes that are a part of
Processing's API such as PImage from which we have instantiated object
variables which we have given names, and those objects have inherited
various properties and functions (called methods in OOP) from the
classes from which they where instantiated. But what exactly is a class?
The concept of a
class
A class is simply a body of code that, in a similar way to a function,
exists independently of the main body of code from which it is
referenced. However, a class does not only have a singular purpose like
a function that checks the position of the mouse, or moves and image
around in a specific way or has some other purpose that can be
summarized by a singularly specific directive. A class can consist of
many functions, which in the context of OOP we refer to as methods.
These methods can be used like functions of your main program but with
the inherited properties of the class from which it came. As a result
you can think of a method as being a function of a class, that when
used in your main program will, like a function, have a definition
independent of the main program and also have properties that are
specific to the class it was instantiated from.
The benefit of this is that when multiple objects are instantiated from
a single class they all inherit the methods of that class, this allows
you to use certain methods with one object and certain other methods
with another object. Thereby creating relationships between those
objects (and ultimately the data you are representing with you main
program) with other data or API features in ways that would be very
difficult or maybe not practically possible without OOP.
One class can
result in many different branches.
|
|