Objectified programming

Object-Oriented Programming

OOP (Object-Oriented programming) focuses on the objects that make up a programme, rather than the functions and data. These objects represent concepts and variables, and are defined with a set of abilities.
OOP is about creating objects and making work toegether.


it is about wrapping a data structure with a functional interface. Abstratcion aims toseparate the implementation of an object from its interface.
The big advantage of abstratcion is that we have localised code that manipulates the data. If there is a need to change the way data are handled, it is possible to make changes in one place, rahter than all the place where the function is used in the programme.


Encapsulation is about keeping the impelementation of your data structure private. Good encapsulation encourages the hiding of implementation details. Thus making a programme more reliable and easier to maintain because it is possible to know exacty what can be done with the implemented data structures.


A well designed and written data structure can be re-used as the basis for many other data structures. It is possible to create hierarchies of data structures. Composition is when larger data structures are created out of smaller ones. Inheritance (or derivation) is when data structure re-use both the implementation and the interface of another data structure.


A programme is polymorphic is it can be used transparently on instances of different classes. Polymorphic allows to write programme in terms of a generic class and have it work correctly for any actual class.


A class describes the form and behaviour of objects (the data structures of an OOP). A class as a class definition ( giving it a name), public access specifier (what can be done with the class), private access specifier (what is hidden away). Within both the public and private access, there are member functions and data that form the structure of the class. The class also contains within the public access both the namesake interface function, e.g. ClassName() (Constructor for object initialisation) and, the ?namesake interface function, e.g. ?ClassName() (Destructor for object cleanup).
A class is a new type of data structure that you are adding to your programme. Once implemented it can be used as often as required.