OOP stands for object oriented programming. It offers many benefits to both the developers and the users. Object-orientation contributes to the solution of many problems associated with the development and quality of software products. The new technology promises greater programmer productivity, better quality of software and lesser maintenance cost. The primary advantages are:
• Through inheritance, we can eliminate redundant code and extend the use of existing classes.
• We can build programs from the standard working modules that communicate with one another, rather than having to start writing the code from scratch. This leads to saving of development time and higher productivity.
• The principle of data hiding helps the programmer to build secure programs that cannot be invaded by code in other parts of the program.
• It is possible to have multiple objects to coexist without any interference.
• It is possible to map objects in the problem domain to those objects in the program.
• It is easy to partition the work in a project based on objects.
• The data-centered design approach enables us to capture more details of a model in an implementable form.
• Object-oriented systems can be easily upgraded from small to large systems.
• Message passing techniques for communication between objects make the interface descriptions with external systems much simpler.
• Software complexity can be easily managed.
• Polymorphism can be implemented i.e. behavior of functions or operators or objects can be changed depending upon the operations.
· It requires more data protection.
· Inadequate for concurrent problems
· Inability to work with existing systems.
· Compile time and run time overhead.
· Unfamiliraity causes training overheads.