Object Oriented Programming (first version -- of three) Programming methodology in which the data elements (objects) in the system form the fundamental unit of program decomposition. |
Object Oriented Programming (second version) Programming methodology in which the data elements (objects) in the system form the fundamental unit of program decomposition. Objects are described by means of classes. |
Object Principle |
Class Principle |
Inheritance |
Type Specialization Principle In any context in which an object of a given class may be used, any object of a subclass may be substituted. |
Object Oriented Programming (final version) |
Principle of Abstraction |
Class Invariant |
Information Hiding Principle |
Type Polymorphism |
ISA A relationship between a subclass and its superclass. Other relationships are possible but this is the norm. An object of a subclass ISA (is a) object of its superclass. It exhibits all of the properties of a superclass object. Implies that the subclass is a specialization of the superclass. |
ISLike A relationship between a class and its superclass. A weaker relationship than ISA. It is used only for code reuse rather than as an abstraction mechanism. Implies that the subclass is a modification of its uperclass. Some item of the semantics has changed. |
HASA (uses) A relationship between classes. The relationship A HASA B is true if B is used to implement A. One of A's components is an element in B. Sometimes we make a choice between ISA and HASA when designing a new class. |
Dynamic Binding Principle |