|
Ich werde Ihnen an dieser Stelle ausführlich erklären, wie die verschiedenen Objekte und Klassen des Volksbank-Projektes zusammenhängen. Am besten fangen wir mit einem Objektdiagramm an.
Im Zentrum unserer Betrachtungen steht ein Objekt volksbank der Klasse Bank. Das einzige Attriut ist kontoliste, ein Objekt, das von der Klasse ArrayList abgeleitet wurde.
Direkt nach dem Erzeugen des Objektes volksbank sieht das Objektdiagramm so aus:

1 Objektdiagramm für die Situation direkt nach dem Erzeugen eines Bank-Objektes
Zeiger, Pointer oder Referenzen
Wie man an dem Objektdiagramm in Abbildung 1 sehen kann, ist in kontoliste keine Zahl oder kein String gespeichert, sondern ein Zeiger auf ein anderes Objekt. In der Informatik versteht man unter einem Zeiger (pointer) eine Variable, in der die Adresse einer anderen Variablen oder eines Objektes gespeichert ist. Statt "Zeiger" spricht man in Java auch gern von "Referenzen".
Da wir nicht wissen, wie eine ArrayList intern aufgebaut ist (und es auch nicht wissen müssen), können wir keine Attribute von ArrayList angeben.
|
|
Ein Zeiger ist eine Variable, die die Adresse einer anderen Variable (eines Objektes) enthält.
|
|
Wenn dem Bank-Objekt volksbank nun zwei Konten hinzugefügt worden sind, sieht das Objektdiagramm folgendermaßen aus:

2 Objektdiagramm für die Situation nach dem Einfügen von zwei Konten
kontoliste enthält nun seinerseits zwei Zeiger auf Objekte der Klasse Konto. Sind in der Arrayliste fünf Objekte enthalten, so muss man sich fünf Zeiger vorstellen, die auf diese Objekte weisen. Eine Arrayliste enthält also viele Zeiger, die auf die eigentlichen Objekte weisen. Daher wäre es Quatsch, für jeden dieser Zeiger eine eigene Variable anzulegen. Viel besser ist es, die vielen Zeiger in einem Array unterzubringen.
Nochmal in Kurzschreibweise:
Eine Arrayliste besteht im Wesentlichen aus einem Array von Zeigern, die auf Objekte verweisen.

3 Objektdiagramm für die Situation nach dem Einfügen von drei Konten
Das Objektdiagramm in Bild 3 zeigt die Situation nach dem Einfügen eines weiteren Kontos. Die ArrayList enthält jetzt drei Referenzen (Zeiger, pointer) mit den Indices 0, 1 und 2, die auf drei Konto-Objekte zeigen.
|
|
Zeiger oder Referenzen zeigen auf Objekte. Diese Objekte können selbst wieder Referenzen auf andere Objekte enthalten. Auf diese Weise ist die Konstruktion großer (und unübersichtlicher) Datenstrukturen möglich.
|