Previous Table of Contents Next


10.2.1 Class


   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.