OO Concepts
The Goal: More Reliable Software, Increased Programmer Productivity, Decreased Cost of Development and Maintenance. Overall -> More Bang for the Buck.
The Concept: Model the Real-World Problem Domain ( Data and Functionality ), Increase Flexibility, Extensibility, amd Reusability.
-
Encapsulation and Abstract Data Types
-
Classes and Objects, Attributes ( Data Members ) and Methods
-
Access — Public, Protected, and Private
-
Data Hiding and Loose Coupling
-
Inheritance and Programming By Difference
-
Abstract and Concrete Classes
-
Composition and Aggregation
-
Polymorphism and Late Binding
-
Overriding and Overloading