Previous | Table of Contents | Next |
Description
A class is a type that has objects as its instances.
Generalizations
•
“Type? on page 92
Attributes
• isAbstract : Boolean True when a class is abstract. The default value is false.
• ownedAttribute : Property [*] The attributes owned by a class. These do not include the inherited attributes. Attributes
are represented by instances of Property.
• ownedOperation : Operation [*] The operations owned by a class. These do not include the inherited operations.
• superClass : Class[*] The immediate superclasses of a class, from which the class inherits.
Semantics
Classes have attributes and operations and participate in inheritance hierarchies. Multiple inheritance is allowed. The instances
of a class are objects. When a class is abstract it cannot have any direct instances. Any direct instance of a concrete (i.e.,
non-abstract) class is also an indirect instance of its class’s superclasses. An object has a slot for each of its class’s
direct and inherited attributes. An object permits the invocation of operations defined in its class and its class’s superclasses.
The context of such an invocation is the invoked object.
Notation
The notation for Basic::Class is the same as that for Constructs::Class with the omission of those aspects of the notation
that cannot be represented by the Basic model.