Object-oriented design focuses on the design of data (i.e., objects) and the interfaces to the data. This type of design enables the developer to concentrate on the resulting product or application rather than on the tools used to complete the task. Object-oriented design focuses on three major principles:
Data encapsulation—Enables the migration of code to multiple platforms without disrupting program modules or methods.
Inheritance—Provides the ability to leverage development efforts over time.
Polymorphism—Allows for the creation of clean and adaptable code.
When you apply these principals in application design, you create a programming environment that supports development of much more robust and scalable programs than a process-oriented design. Encapsulation enables you to migrate your code to multiple platforms without disrupting program modules or methods; inheritance enables you to leverage development efforts over time; and polymorphism enables you to create clean and adaptable code.
Integral to the implementation of this programming design are the concepts of objects, classes, and data structures.