31.2 Die abstrakte Klasse Liste |
|
Liste |
Über eine Liste hat man solange Kontrolle,
solange man den Kopf, sprich das erste Element kennt. Das Kopf-Element
wird in der Literatur häufig auch Anker genannt. Wir modellieren eine neue Klasse Liste, in der wir
allerdings noch offen lassen wollen, wie wir ein Element in die Liste
einfügen wollen. Das Einfügen oder Anhängen kann
nämlich auf verschiedene Arten geschehen. Da wir die Konkretisierung
dieser Methode, d.h. die Festlegung ihrer Funktionalität einer konkreten
Klasse vorenthalten wollen, legen wir die Methode
haengeAn(Object wert): void
in der Klasse
Liste abstrakt
an. Damit machen wir aber die Klasse selbst abstrakt. Die UML-Notation
macht abstrakte Klassen und abstrakte Methoden durch kursive Schreibweise
deutlich. |
UML der Liste |
|
Die 'Beziehungslinie' mit dem dem
gefüllten
Rhombus am einen Ende kennzeichnet eine Komposition. In unserem Beispiel
heißt das, dass Element ein unverzichtbarer Bestandteil der (nicht leeren)
Liste ist und weiter, dass beim 'Zerstören' der Liste auch alle Elemente
mit verloren gehen. |
|
Download: Liste.java |
|
Kommentar |
Mit Hilfe des Standardkonstruktors Liste(), erzeugen wir eine leere Liste, d.h. das Kopfelement zeigt auf null. |
Die Methode haengeAn(Obhject wert): void ist, wie schon angekündigt, abstrakt und muss von einer Klasse, die von Liste erbt, implementiert werden. Eine abstrakte Methode erkennt man zunächst daran, dass vor dem Rückgabewert, hier void, das reservierte Wort abstract steht. Ein weiteres Erkennungsmerkmal ist das Fehlen des Methodenrumpfs; statt dessen folgt der Parameterliste lediglich noch ein Semikolon. Da aber Rückgabewert und Parameterliste spezifiziert sind, liegt auch die Signatur der Methode fest. Klassen, die von Liste erben und die Methode hangeAn(Object wert): void implementieren, sind somit an diese Signatur gebunden. In der Darstellung des
Quelltextes sind wieder alle Kommentare entfernt worden. Im Download sind
sie integriert. |
|
zu | 31.3 Übung |
zur Startseite | www.pohlig.de (C) MPohlig 2006 |