Definition and Citations:
a programming ideology that views programs as a combination of objects, which are capable of exchanging information between one another, and can be easily combined to form modules or blocks. An object is encapsulated , that is it contains information regarding itself, and has a property called Inheritance through which it is able to interact with other objects. Thus, each object is independent and can lock itself with other objects. Such features are seen in languages such as Java and C++.