InfoHome | Themen | Projekte | Links | Software |
|
Objektsammlungen flexibler GrößeProjekt: Notizbuch Am Beispiel eines persönlichen Notizbuches soll im Folgenden eine Möglichkeit demonstriert werden, die Java für die Gruppierung einer beliebigen Anzahl von Objekten in einem einzelnen Behälter-Objekt (Container) bereithält. Das Notizbuch soll folgende Funktionen bereithalten:
Diese Funktionen lassen sich unter Benutzung der Bibliotheksklasse ArrayList leicht realisieren. Bibliotheksklassen sind Klassen, die bereits fix und fertig in Java implementiert worden sind. In Java gibt es hunderte solcher vordefinierter Klassen. Die Java-Dokumentation bietet einen Überblick über die jeweiligen Insatnzvariablen und Methoden dieser Klassen. Falls Sie die Dokumentation nicht heruntergeladen haben, können Sie zur Klasse ArrayList hier online nachschlagen. Das folgende Objektdiagramm zeigt die Struktur des Projektes Notizbuch.
Wichtig ist die aufsteigende, mit Null beginnende Nummerierung (Indizierung) der einzelnen Objekte einer Sammlung. Über seinen Index innerhalb der ArrayList lässt sich jedes Notizobjekt gezielt ansprechen. Zum Arbeiten mit dem Notizbuch werden zunächst nur die Methoden add, get und size benötigt. add(Object notiz) fügt eine Notiz (am Ende der ArrayList) ein, get(int index) liefert eine Notiz und size() liefert die Anzahl der gepeicherten Notizen Um die Klasse ArrayList benutzen zu können, muss sie zunächst mittels import Anweisung in unser Programm eingebunden werden. Die Klasse ArrayList befindet sich im Paket (Zusammenfassung von Klassen ähnlicher Funktionalität) java.util und wird mit der Zeile import java.util.ArrayList; angefordert. Als Konstruktor für unser ArrayList-Objekt verwenden wir zunächst den Standard-Konstruktor ArrayList(). Dieser legt eine leere ArrayList für zunächst 10 Elemente an. Offensichtlich wird die Kapazität der ArrayList vor Einfügen des 11. Elementes automatisch erweitert (Wie?). In blueJ lässt sich das durch inspizieren eines neu erzeugten ArrayList-Objektes bestätigen. Es stellt sich beim Arbeiten mit Sammlungen häufig die Aufgabe, mit allen Objekten der Sammlung etwas zu tun (z.B. alle gespeicherten Notizen ausgeben). Dies lässt sich in der Praxis mit Hilfe einer while-Schleife der Form
int index=0;
erledigen. Beachten Sie dabei, dass size() die Anzahl der gespeicherten Objekte liefert, die gerade um Eins größer ist, als der größte Index. IteratorenEs gibt eine weitere Möglichkeit, eine Sammlung zu durchlaufen, nämlich die Verwendung eines Iteratorobjektes. Ein Iterator-Objekt heftet sich an eine Sammlung und kennt unter anderem die beiden Methoden hasNext und next. boolean hasNext() liefert false, wenn man am Ende der Sammlung angekommen ist, sonst true. Object next() liefert das nächste Objekt der ArrayList.
Iterator it = notizen.iterator();
Offensichtlich ist Iterator keine gewöhnliche Klasse, da die Syntax bei Aufruf der Konstruktormethode nicht wie gewohnt abläuft (warum nicht?). Auch für die Benutzung von Iteratoren ist eine Importanweisung nötig: import java.util.Iterator. Oder man importiert einfach alle Klassen im Paket java.util mit der Anweisung import java.util.*. |
© 2004-2025 M. Blanke · Ursulaschule · Kleine Domsfreiheit 11-18 · 49074 Osnabrück |