Theorieteil 2 zur Folge 6:

Arraylisten können Element für Element durchlaufen werden

Das Durchlaufen der Kontoliste / Iteratoren

4 Der Quelltext der Methode gibGuthaben()

Viele Container-Klassen haben eine Methode iterator(), welche einen so genannten Iterator zurückliefert. Unter einem Iterator versteht man ein Objekt der Klasse Iterator, das in der Lage ist, über eine Containerklasse Buch zu führen. Ein Iterator kann zum Beispiel feststellen, ob Elemente in der Containerklasse enthalten sind, welches das aktuelle Element ist, und ob es noch Elemente gibt, die auf das aktuelle Element folgen.

Mit der Anweisung

Iterator it = kontoliste.iterator();

erzeugen wir ein Objekt it, welches ein Iterator für das Objekt kontoliste ist. Für unser Programm sind vor allem zwei Methoden der Klasse Iterator wichtig:

Iterator.hasNext()

Liefert den Wert true zurück, falls noch weitere Elemente auf das aktuelle Element folgen.

Iterator.next()

Liefert das nächste Objekt der Containerklasse, allerdings ist das Objekt noch von unbestimmtem Typ, so dass es erst durch den Cast-Operator in ein Objekt einer bestimmten Klasse umgewandelt wird.

Achtung:
Das Wort "Iterator" wird hier einmal als Fachbegriff - Iterator - , dann als Klassenname - Iterator - und schließlich als Bezeichnung für eine Methode - iterator() - verwendet.

Der Cast-Operator

In einer ArrayList (und auch in anderen Containerklassen) werden die Objekte nicht als solche gespeichert, vielmehr werden Zeiger (pointer) auf die Objekte verwaltet. Die Methode next() liefert also nur einen Zeiger auf ein Objekt zurück, kein Objekt selbst. Mit Hilfe des cast-Operators - hier (Konto) - wird aber aus dem Zeigerwert wieder ein "richtiges" Objekt generiert, das einem Objekt der Klasse Konto entspricht.

Diese HTML-Seite wurde erstellt von Ulrich Helmich am 26. April 2005 mit Golive 6.





IMPRESSUM