Often, object-orientation is easily replaced with object-oriented programming, but an implementation in an object-oriented programming language is no more than an example of this modelling at the lowest level of abstraction in the design.
Because of this replacement, object-orientation is explained by describing what an particular object-oriented programming language has to offer. Here, a description is given of the fundamentals of object-orientation, techniques to support the fundamentals, and features based on the techniques. Note that only the fundamentals are necessary for object-oriented modelling, some support can be nice, and features are mostly only used on the lowest levels of abstraction.
- OO Fundamentals (Objects, Relations, Abstraction)
- OO Support (Types, Message Passing, Encapsulation, Information Hiding)
- OO Structures (Type Composition, Object Composition, Abstract Object Types)