A methodology or paradigm to design a program using classes and objects.
Object Oriented programming is a programming methodology that is associated with the concept of Class.
Objects and various other concepts revovling around these like Inheritance, Polymorphism, Abstraction, Encapsulation etc.
Hiding internal details and showing functionality is known as abstraction. Abstract class and interface can be used to achieve abstraction.
Example: watching TV, we don't know the internal processing.
Binding (or wrapping) code and data together into a single unit is known as encapsulation.
Example: capsule, it is wrapped with different medicines.
A java class is the example of encapsulation. Java bean is the fully encapsulated class because all the data members are private here.
Advantage of OOPs over Procedure-oriented programming language
1)OOPs makes development and maintenance easier where as it is not easy to manage the projects if code grows as project size grows.
2)OOPs provides data hiding whereas in Procedure-oriented programming language a global data can be accessed from anywhere.
3)OOPs provides ability to simulate real-world event much more effectively.