Object oriented programming is a programming methodology that associates data
structures with a set of operators, which act upon it. 

OOP is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class and whose classes are all members of a hierarchy of classes united through the property called inheritance.  

Depending on the object features supported, the languages are classified into two categories: 

• Object-Based Programming Languages  
• Object-Oriented Programming Languages 

Object-based programming languages support encapsulation object identity without supporting the important features of inheritance, polymorphism and message communications. 
Example ADA.

Object-Oriented Programming Language incorporate all the features of object-based programming languages along with inheritance and polymorphism.  
The topology of the Object Oriented Programming is shown in Fig 1.4.  The modules represent the physical building blocks of these languages; a module is a collection of classes and object.

Object oriented programming is a methodology that allows the association of data structures with operations similar to the way it is perceived in the human mind.