A class that does not know to instantiate objects of itself.
Class
The encapsulation of data and behavior in a bidirectionally related construct. Correlates to a concept in the real world. Synonyms include abstract data type or ADT.
Concrete class
A class that knows how to instantiate objects of itself.
Constructor
A special operation of a class that is responsible for building/initializing objects of the class.
Destructor
A special operation of a class that is responsible for destroying/cleaning up objects of that class.
Dynamic semantics
The collection of all possible states that an object of a class can have, along with the allowable transitions from one state to another. Often documented through a state-transition diagram.
Information hiding
The ability of a class to hide its implementation details from the users of objects of that class.
Instantiation relationship
The relationship between a class and its object(s). Classes are said to instantiate objects.
Key abstraction
A key abstraction is defined as a main entity within a domain model. Key abstractions often show up as nouns within the domain vocabulary.
Message
The name of an operation defined on a class. In strongly typed languages, a message may include the name , return type, and argument types of the operation (i.e., its prototype).
Method
The implementation of a message.
Object
An example member of a class consisting of its own identity, the behavior of the class, the interface of the class, and a copy of the class's data. Also called an instance of the class.
Overloaded function
The ability to have two functions with the same name so long as their argument types differ (intraclass overloading) or they are attached to different classes (interclass overloading).
Protocol
The list of messages to which a class can respond.
Self object
The reference to the object to which a message is sent, when it is within the method.