The central idea of Object-Oriented Programming (OOP) is to build programs using software objects. An object can be considered as a self-contained computing entity with its own data and programming. .
OOP offers the following main advantages.
• Simplicity - because software objects model real objects in the application domain, the complexity of the program is reduced and the program structure becomes clear and simple. .
• Modularity - each object forms a separate entity whose internal workings are decoupled from other parts of the system .
• Modifiability - it is easy to make minor changes in the data representation or the procedures used in an OO program because the changes do not affect any other part of the program (provided the external behavior of the object is preserved). .
• Extensibility - adding new features or responding to changing operating environments can be a matter of introducing a few new objects and modifying some existing ones. .
• Maintainability - objects can be maintained separately .
• Reusability - objects can be reused in different programs. .
Some concepts behind OOP are:.
Objects: An object is a software bundle of related variables and methods. Software objects are often used to model real-world objects. These real-world objects share two characteristics: They all have state and behavior. Software objects are modeled after real-world objects in that they too have state and behavior. A software object maintains its state in one or more variables. A variable is an item of data named by an identifier. A software object implements its behavior with methods. A method is a function associated with an object. Everything that the software object knows (state) and can do (behavior) is expressed by the variables and the methods within that object. Software objects interact and communicate with each other by sending messages to each other.