Nach dieser Lektion kannst du
Eine Klasse ist der Bauplan für gleichartige Objekte. Ein Hund besitzt beispielsweise Eigenschaften wie seinen Namen oder sein Alter und kann bestimmte Aktionen ausführen. Aus einer Klasse können später beliebig viele konkrete Hunde entstehen.
Eine Klasse beschreibt also was ein Objekt weiß (Attribute) und was es tun kann (Methoden).
Wir modellieren zunächst eine einfache Klasse Hund.
Hier sieht man bereits die drei Bereiche einer UML-Klasse: Klassenname, Attribute und Methoden.
Ganz oben steht immer der Name der Klasse: Hund. Klassen werden in der Regel im Singular geschrieben, da jede Klasse genau einen Bauplan beschreibt – also nicht Hunde, sondern Hund.
Attribute beschreiben die Eigenschaften eines Objekts. Unser Hund besitzt beispielsweise name (Name des Hundes), alter (Alter) und gewicht (Gewicht).
In UML werden Attribute folgendermaßen notiert:
sichtbarkeit name : datentyp
-name : StringDas bedeutet: Sichtbarkeit privat (-), Name des Attributs name, Datentyp String.
Der Datentyp legt fest, welche Werte gespeichert werden dürfen.
| Datentyp | Beispiel |
|---|---|
| String | „Bello“ |
| int | 5 |
| float | 18.7 |
| boolean | true |
Weitere Beispiele:
-name : String-alter : int-gewicht : float-istStubenrein : boolean
Attribute können bereits einen Anfangswert besitzen:
-name : String = "Unbekannt"-alter : int = 0
Der Teil hinter dem Gleichheitszeichen ist der Standardwert. Dadurch erhält jedes neue Objekt zunächst diesen Wert, solange nichts anderes angegeben wird.
Methoden beschreiben das Verhalten einer Klasse. Unser Hund kann beispielsweise bellen, laufen und fressen. Die Schreibweise lautet:
sichtbarkeit name(parameter): rückgabetyp
Eine Methode ohne Rückgabewert:
+bellen()Eine Methode mit Rückgabewert:
+alterBerechnen(): intMethoden können Informationen erhalten. Beispielsweise soll der Hund unterschiedlich weit laufen:
+laufen(distanz: float)Hier besitzt die Methode einen Parameter namens distanz (Strecke in Metern oder Kilometern). Mehrere Parameter werden mit Kommas getrennt:
+springen(hoehe: float, anlauf: boolean)Nicht jede Methode liefert ein Ergebnis, zum Beispiel:
+bellen()Hier passiert lediglich eine Aktion. Andere Methoden liefern Informationen zurück, etwa:
+gewichtErmitteln(): floatDer Doppelpunkt hinter den Klammern gibt den Rückgabewert an.
Vor jedem Attribut und jeder Methode steht ein Symbol: + (öffentlich/public), - (privat/private), # (geschützt/protected). Beispiel:
-name : StringDas Minus bedeutet: Das Attribut darf nicht direkt von außen verändert werden. Eine öffentliche Methode besitzt dagegen ein Plus:
+bellen()Der Doppelpunkt bei Attributen (name : String) trennt den Namen vom Datentyp. Bei Methoden (alterBerechnen(): int) trennt der Doppelpunkt dagegen die Parameterliste vom Rückgabetyp. Beides sieht ähnlich aus, bedeutet aber etwas anderes – je nachdem, ob davor Klammern () stehen oder nicht.
Hier erkennt man bereits fast alle wichtigen Bestandteile einer UML-Klasse: Klassenname, Attribute, Datentypen, Standardwerte, Methoden, Parameter, Rückgabewerte und Sichtbarkeiten.
Eine UML-Klasse besteht aus einem Namen, ihren Attributen (Eigenschaften) und ihren Methoden (Verhalten). Attribute besitzen Datentypen und optional Standardwerte. Methoden können Parameter entgegennehmen und Werte zurückgeben.
Du kennst nun alle grundlegenden Bestandteile einer UML-Klasse. In den meisten Klassendiagrammen wirst du genau diese Notation wiederfinden. In der nächsten Lektion erweitern wir dieses Wissen um abstrakte Klassen und Schnittstellen. Beide ermöglichen es, gemeinsame Eigenschaften und Methoden für mehrere Klassen zu definieren und bilden die Grundlage für Vererbung und Polymorphie.