Object oriented programming (OOP) is a model of programming language that focuses on the use of objects instead of actions in order to carry out tasks. This involves taking an approach that is more mindful of data and less concerned with logic, which is more commonly the case in other programming paradigms. The view of objects and actions is the reverse of how it is in other languages, and the emphasis is on the objects themselves rather than on the execution of tasks that employ the objects. In like manner, the structure does not consider deciding on how to employ the logic, but on the definition of the data that will be used in the programming.
Designing computer software with object oriented programming begins with defining the objects that are to be manipulated by the program. The programmer will then begin to identify the relationship between each object, a process usually referred to as data modeling. Essentially, the programmer is seeking to place the objects into a classification, therefore helping to define the data that is part of the inheritance brought to the task by each object. In fact, the process of defining these classes and subclasses of data is normally called inheritance.
OOP also helps to sort objects in a manner that allows for polymorphism to take place. That is, different objects will be able to respond to a common message, but each in a different way that is unique to that object. At the same time, this type of programming allows for the encapsulation of an object, effectively hiding or protecting the data associated with the object from easy view without security access.
One of the advantages of object oriented programming is that the process makes good use of modularity, meaning that objects and tasks are grouped in a way that each module is capable of independent consideration. This can be a great help when making enhancements to a program, as modularity makes it possible to address the task of making alternations to the setup of one portion of the programming without affecting the structure and function of the other modules.