As interaction between modules grows, the significance of a main program decreases. Languages such as C++ and Java are ultimately designed to contain only a driver `main` section. A driver is a segment of calls to other code, it contains little or none computational material. The main section of the program can be thought of as a sparker, an entrance point into a whole society of modules, classes, and structures.
In this web, the interacting modules are known as objects, each of which contains an independent state and data which is completely isolated from all other objects by default. OOP brings along a concept of abstraction: that idea of separate creatures called objects reach representing some kind of problem or concept, with its own channels of communication with the rest of the world.
…