Index

Datentypen (12)


Objekt-Typ

2. UML-Notation

UML steht für Unified Modeling Language und stellt graphisch den Aufbau und den Zusammenhang der Objektklassen und ihrer Objekte dar.

Wie schon erwähnt, besteht der Ursprung objektorientierter Programmierung meist in der Betrachtung realer Objekte. Diese müssen auf ihre Eigenschaften und Fähigkeiten untersucht werden, um die entsprechende Schablone, die Objektklasse zu definieren; d.h. es müssen Gemeinsamkeiten der einzelnen realen Objekte gefunden werden, die sie zu einem besonderen Typ zusammenfassen und von anderen Objekten abgrenzen. Man führt also eine Abstraktion durch.
Wir betrachten als Beispielobjekt ein Auto.

Ein Auto besitzt sicher sehr viele Eigenschaften, den Benutzer interessieren davon aber meist nur spezielle. Oft spielt die Umgebung in der die Objekte betrachtet werden auch eine Rolle, welche Eigenschaften und Fähigkeiten gerade für wichtig erachtet werden.
Werden Autos in einem Autohaus gehandelt, so mögen Angaben wie Marke, Typ, Farbe, Ausstattung, Preis u.a. die interessanten Eigenschaften sein. Der Fahrer, der sich mit dem Auto fortbewegt mag sich eher für die momentane Geschwindigkeit, ob das Fahrzeug gerade beschleunigt oder bremst, ob die Beleuchtung eingeschaltet ist usw. interessieren.

Es soll hier als Beispiel der zweite Fall betrachtet werden. Damit die Übersicht nicht verloren geht, schränken wir die betrachteten Eigenschaften auf ein Minimum ein.

Objektklasse TAuto Die Klasse stellt programmtechnisch einen Datentyp dar, wir bezeichnen sie mit TAuto. In UML wird der Klassenbezeichner in den obersten Bereich eines dreigeteilten Rechtecks notiert, wobei ein Doppelpunkt vorangestellt wird.
Im zweiten Feld werden die Attribute notiert, im dritten schließlich die Methoden, also die möglichen Aktionen, die das Objekt ausführen kann.

 

Objektklasse (vollständig) Da die Attribute gekapselt sind, können diese nur mit entsprechenden Methoden verändert werden. Daher wird für jedes Attribut, das gesetzt oder gelesen werden soll, eine entsprechende Methode deklariert.
In der Regel verwendet man hierzu set- bzw. get-Methoden.
Die Attribute sind Variable für bestimmte Datentypen, daher muss ihr jeweiliger Typ angegeben werden. Ihre Bezeichner werden mit großem Anfangsbuchstaben notiert.
Methoden benötigen oft Parameter, die in Klammer angegeben werden. Werden keine Parameter benötigt, so verwendet man nur ein leeres Klammerpaar. Die Methoden entsprechen den bereits bekannten Prozeduren oder Funktionen. Gibt eine Methode einen Wert zurück, so wird der Datentyp dieses Wertes angegeben. Methodenbezeichner beginnen mit einem Kleinbuchstaben.

Die Deklaration eines Objektes ähnelt der Varaiblendeklaration:
MeinAuto: TAuto.
Das Objekt besitzt zunächst keine definierten Eigenschaften. Es muss initialisiert werden, wobei es mit den nötigen Attributwerten versorgt wird. Hierzu verfügt die Klasse über eine spezielle Methode, den Constructor, mit dem auch gleich das Objekt dynamisch erzeugt wird. Entsprechend gibt es eine Methode Destructor, die ein Objekt wieder vernichtet. In obiger Darstellung müssten diese Methoden noch ergänzt werden.

In der UML-Notation werden Objekte ähnlich den Klassen dargestellt, allerdings mit den Attributswerten. Sie stellen damit ein Momentbild eines vorhandenen Zustandes dar.

Objekt MeinAuto

Da die Objekte einer Klasse alle dieselben Methoden haben, nämlich die in der Klasse definierten, können diese bei der Objektdastellung weggelassen werden:

Klasse und ihre Objekte
Die Klassendefinition, kann bereits vorbelegte Werte für Attribute enthalten. Diese müssen dann bei der Erzeugung des Objekts nicht gesondert initialisiert werden. In unserem Beispiel wird davon ausgegangen, dass das Auto bei der Erzeugung die Geschwindigkeit 0 hat, also steht und der Motor aus ist. Das vereinfacht die Initialisierung, da dort nur noch die maximale Leistung und die maximal erreichbare Geschwindigkeit angegeben werden müssen.

[Auto-Beispiel als PASCAL-Programm (Delphi)]
 
[Geometrie-Beispiel als PASCAL-Programm (Delphi)]

 

[Index] [Zurück/Objekttyp-Einführung]


Autor: Jürgen Dehmer
Letzte Änderung: 25. März 2001