Definitions |
Abstract Data Types (ADTs):
|
Entities that encapsulate information and provide operations
to manipulate
objects. |
Algebra:
|
Formal, mathematical entity composed of sets of values and
operations
(to manipulate these values). |
Attributes:
|
Methods and Fields in a class. |
Class:
|
A description of an object. (Just for interests sake, Booch's
definition
reads "A set of objects that share a common structure and a common
behaviour.
The terms class and type are usually(but not always) interchangeable."
- This is the chicken/egg thing -> Is a class a template for an
object,
or are a group of objects a class?) |
Class instantiation:
|
Technique on which new objects are created from classes,
which are
templates that identify objects' methods and instance variables. |
Data abstraction:
|
Mechanism on which objects implement a message interface
(i.e., methods)
to encapsulate a state (i.e., instance variables). |
Data algebras:
|
Concrete representation (i.e., implementation) of ADTs. |
Delegate:
|
points to a common method suite |
Embedded:
|
A copy of the method is found in each object. |
Existential type:
|
Entity that defines an object's available operations and
their use
without describing their implementation or the type used as the carrier
of the algebra. |
Field:
|
Specific variables of a class |
Functional polymorphism:
|
Technique on which an operation have a consistent behavior
independently
of the type of its arguments. |
Inheritance:
|
(1) To inherit is to receive properties or characteristics of
another.
Often refered to as on "is-a" relationship.
(2) Reception of characteristics from another entity, normally as a
result of some special relationship between the giver and
receiver.
(3) Enhancement of descriptive power based on either subclassing (in
class-based languages), or delegation of responsibility (in
prototype-based
languages). |
Methods:
|
Code to operate on a class or instantiation of the class. |
Object:
|
Entity with a state (maintained by instance variables),
methods (which
are prescriptions for responding to messages), and an identity (based
on
a "self" that persists over time independently of its changes in state). |
Overloading:
|
Mechanism on which a single identifier can refer to different
operations
discriminated by the type of their arguments |
Overriding:
|
Mechanism to provide extended and consistent behaviour to
subclasses. |
Prototyping:
|
Technique on which new objects are created by using objects
already
in existence. |
self:
|
refers to the current object. |
Subclass:
|
A class that inherits from one or more classes. |
Superclass:
|
Refers to the immediate parent class. (This gets abit weird
when dealing
with multiple inheritance) |
Type:
|
Entity applied to the characterization of values that arise
in the
course of computation. |