Object-oriented programming (OOP) is a programming paradigm that uses "objects" and their interactions to design applications and computer programs.
Object Oriented Development (OOD) has been touted as the next great advance in software engineering. It promises to reduce development time, reduce the time and resources required to maintain existing applications, increase code reuse, and provide a competitive advantage to organizations that use it.
The key ideas of the object oriented approach are :
- Encapsulation
- Objects
- Class and Inheritance
- Instances and Instantiation
- Methods and Messages
Some important features of Object Oriented programming are as follows:
- Emphasis on data rather than procedure
- Objects can communicate with each other through functions
- Programs are divided into Objects
- New data and functions can be easily added whenever necessary
- Data is hidden and cannot be accessed by external functions
- Follows bottom-up approach
Advantages of Object Oriented Development (OOD)
Simplicity: software objects model real world objects, so the complexity is reduced and the program structure is very clear.
Reusability: Reusability is a desired goal of all development and is based on the reluctance of reinventing something when it has already been invented. Objects contain both data and functions that act on data, objects can be thought of as self-contained "boxes" (encapsulation). This feature makes it easy to reuse code in new systems. Messages provide a predefined interface to an object's data and functionality. If you know this interface, you can make use on an object in any context you want. OOP languages, such as C# , make it easy to expand on the functionality of these "boxes", even if you don't know much about their implementation.
Increased Quality: Increases in quality are largely a by-product of this program reuse. If 90% of a new application consists of proven, existing components, then only the remaining 10% of the code has to be tested from scratch. That observation implies an order-of-magnitude reduction in defects.
Faster Development: OOD (Object oriented development) leads to faster development. Many of the claims of potentially reduced development time are correct in principle.
Maintainable: OOP methods make code more maintainable. Objects can be maintained separately, making locating and fixing problems easier. The principles of good OOP design contribute to an application's maintainability.