Object-oriented programming paradigm
Object Oriented Programming is an aproach in which a program is viewed as a dynamic network of collaborating objects, where each objects is an instance of a class. Each object has data and procedures that process the data. Objects in this collection react upon receiving of messages, changing their state according to invocation of methods which might cause other messages sent to other objects as shown below.
The fundamental principle in object-oriented programming is to view a program as a collection of interacting objects.