Object Oriented Programming
A programming paradigm defines the methodology of designing and implementing programs.
Procedural or imperative programming is a list or set of instructions telling a computer what to do step by step and how to perform from the first code to the second code. More emphasis is laid on procedure than data.
Modular programming subdivides program into separate subprograms such as functions and subroutines. Multi-paradigm programming supports more than one programming paradigm. The idea of a multi paradigm language is to provide a framework in which programmers can work in a variety of styles, freely intermixing constructs from different paradigms.
In object-based programming, data and its associated meaningful functions are enclosed in one single entity a class. Object based programming localizes the implementation details. Object Based Programming bundles data and the functions that access it into a single unit, called class. Features of encapsulation, data hiding and abstraction are seen here.
Polymorphism and inheritance are important OOP concepts which are lacking in Object Based Programming. Because of this, Object based programming does not support overloading and inheritance.
The object-oriented programming has been developed with a view to overcome the drawbacks of conventional programming approaches. OOP concept is based on: Objects, Classes, Encapsulation, Data, Hiding, Abstraction, Inheritance, Polymorphism and Modularity.