Object-oriented programming consists of arranging data in modular sets of elements of real
world information (called a domain. These data elements are called objects.
This data is grouped according to the main real world characteristics of those elements (size, color, etc...).
The object approach is an idea that has been well proven. Simula was the first programming
language to implement the concept of classes in 1967! In 1976, Smalltalk implemented the concepts of
encapsulation, aggregation and inheritance (the principle concepts of the object-oriented programming). On the other
hand, several object-oriented programming languages have been implemented on a global scale
(Eiffel, Objective C, Loops, etc.).
The difficulty with this modular approach is the creation of an abstract representation, in the form of
objects, entities that actually exist (dog, car, lightbulb...) or virtually exist (social security, weather, etc.).
An object is characterised by several concepts: