Object Oriented Programming ( OOP )is a programming approach which uses objects. An object is a software component which has properties and behaviour.
When a program runs objects are created and work together to perform the program's tasks. Most modern programming languages support object orientation (C#, Java, C++,
VB. NET, PHP, etc.).

Features of OOP :

1. Improvement of over the structured programming languages.

2. Emphasis on data rather than algorithm.

3. Data is hidden and cannot be accessed by external functions.

4. Objects may communicate with each other through functions.

5. New data and function can be easily added whenever necessary.

6. Follows bottom - up approach in program design.
Object-oriented programming (OOP) is a programming language model organized around objects rather than "actions" and data rather than logic.
Historically, a program has been viewed as a logical procedure that takes input data, processes it, and produces output data.

Features of Object are
3)Data hiding and Encapsulation
4)Dynamic Binding

          Object is a collection of number of entities. Objects take up space in the memory. Objects are instances of classes

        Class is a collection of objects of similar type. Objects are variables of the type class. Once a class has been defined, we can create any number of objects belonging to that class

3)Data Hiding and Encapsulation
Combining data and functions into a single unit called class and the process is known as Encapsulation.Data encapsulation is important feature of a class. Class contains both data and functions.
           The insulation of the data from direct access by the program is called data hiding or information hiding. Hiding the complexity of proram is called Abstraction 

4)Dynamic Binding
 Refers to linking of function call with function defination is called binding and when it is take place at run time called dynamic binding.

it is the process by which object of one class aquire the properties or features of objects of another class.

A greek term means ability to take more than one form. An operation may exhibite different behaviours in different instances. The behaviour depends upon the types of data used in the operation.