Vererbung
class Rechteck {
private int länge, breite;
Rechteck(int l, int b) { länge = l; breite = b; }
int fläche() { return länge * breite; }
}
class Quadrat extends Rechteck {
Quadrat(int seite) { super(seite, seite); }
}Konstruktorverkettung
- Der Compiler erzwingt, dass bei der Erzeugung eines Objektes alle Konstruktoren seiner Vererbungshierarchie aufgerufen werden, und zwar von der Spitze der Hierarchie her, angefangen bei
Object. - Ein Konstruktor kann nur entweder
this()odersuper()aufrufen. - Genau wie
this()musssuper()die erste Anweisung eines Konstruktors sein.
Das Schlüsselwort super
- Mit
superlassen sich auf Attribute und Methoden der Oberklasse (einschließlich Konstruktor) zugreifen, die von der Unterklasse überschrieben wurden superist quasi einthis, nur für die Oberklasse.
Das Schlüsselwort @Override
@Override wird verwendet, um dem Compiler klarzumachen, dass die darunterliegende Funktion überschrieben werden soll.
Objektdiagramme
- Objekt(Variablen-)Name und Typ sind optional, müssen aber unterstrichen werden
- Wird nur ein Typ angegeben, wird ein Doppelpunkt vorangestellt
- Referenzen werden mit Pfeilen angegeben
Klassendiagramme
Klassen
- Darunter meist Attribute
- Statische Attribute und Methoden werden unterstrichen
- Zugriffsmodifikatoren:
-private~package-private#protected+public
- Beispiel:
# d: double
- Darunter meist Methoden
- Entweder nur mit Namen und ein Klammernpaar
- Beispiel:
umfang()
- Beispiel:
- Oder ausführlich mit Zugriffsmodifikatoren, Parametern und Rückgabetyp
- UML kennt den Typ void nicht, der wird dann einfach weggelassen
- Beispiel:
~ Rechteck(länge: int, breite: int)
- Beispiel:
- Entweder nur mit Namen und ein Klammernpaar
Zusammensetzung
- Beispiel: Ein Auto hat ein Lenkrad
- Klasse
Autound KlasseLenkradwerden mit Linie verbunden, wobei beim Ganzen (hierAuto) am Linienende eine Raute ist
Komposition vs. Aggregation:
- Komposition: Das Ganze wird aus den Teilen aufgebaut, die Teile können nicht ohne das Ganze existieren
- Beispiel: Ein Gebäude besteht aus mehreren Räumen
- Aggregation: Das Ganze hat zwar Teile, diese und das Gabze können aber unabhängig voneinander existieren
- Beispiel: Eine Vorlesung hat verschiedene Studenten
Vererbung
- Meist durch Hierachien (oft durch Baumartigen Aufbau), deren Klasse durch Pfeile verbunden sind
- Beispiel:
Cabrioist einAuto. daher Pfeil vonCabriozuAuto