28.2 Die abstrakte Klasse Liste |
|
Liste |
Über eine Liste hat man solange Kontrolle,
solange man den Kopf, sprich das erste Element kennt. Ein Element, über
das man einen direkten Zugriff auf die Liste hat, könnte man Anker nennen.
Anker werden auch benötigt, um die zwei wesentlichen Operationen auf
Listen auszuführen, nämlich das Anhängen und das Ausgeben der
Listenelemente. Wir modellieren eine neue Klasse Liste, in der wir
allerdings noch offen lassen wollen, wie wir anhängen. Das Anhängen kann
nämlich auf zwei Arten geschehen. Wie wir noch sehen werden, erhalten wir
nämlich je nachdem wie wir das Anhängen realisieren eine LIFO – Liste oder
eine FIFO – Liste. Deshalb legen wir das Anhängen in einer abstrakten
Methode an und machen damit
Liste
zu einer abstrakten Klasse. |
UML der Liste | |
Download: Liste.java |
|
Kommentar |
Die Klasse Liste enthält, da kein anderer Konstruktor implementiert ist, den leeren Standardkonstruktor Liste(). In der Methode gibAus() wird lauf vom Typ Element deklariert und mit kopf initialisiert. Das Element-Objekt kopf spielt also die Rolle des Ankers. In der while-Schleife werden die Werte der Elemente in der Liste solange ausgegeben, bis das letzte Listenelement erreicht ist, d.h. bis naechstes auf null zeigt. Das ‚Durchhangeln’ durch die Liste geschieht in der Zeile: lauf = lauf.getNaechstes(); Die Situation vor dem Abarbeiten der Zeile: |
Die Situation nach dem Abarbeiten der Zeile: | |
Die Methode
haengeAn()
ist, wie schon angekündigt, abstrakt und
muss von einer Klasse, die von Liste erbt, implementiert werden. |
|
zu | 28.3 ListeLIFO |
zur Startseite | www.pohlig.de (C) MPohlig 2004 |