Lernpfad:Objektorientierte Programmierung mit Java/Komplexe Arrays
Objektarrays
Arrays können nicht nur primitive Datentypen speichern, sondern auch komplexe Typen - also Objekte. Jedes Element ist dann eine Referenz auf eine Objektinstanz der deklarierten Klasse. Dabei können einzelne Indizes des Arrays auch auf dasselbe Objekt referenzieren. Ein Array ist aber auf Objekte einer Klasse beschränkt, die bei der Deklaration angegeben werden muss.
Random[] wuerfel = new Random[6];
wuerfel[4] = new Random();
wuerfel[0] = new Random();
wuerfel[2] = new Random();
wuerfel[1] = wuerfel[4];
wuerfel[3] = wuerfel[2];
Der gezeigte Quelltext würde beispielsweise folgendes Array erzeugen:
Eine Änderung an dem Objekt r1
kann hier mit wuerfel[1]
oder wuerfel[4]
erfolgen.
Umgang mit Nullreferenzen
Im Gegensatz zu primitiven Datentypen haben Objektreferenzen null
als Initialwert. Das bedeutet, ein Objektarray enthält zu Beginn nur den Wert null
. Wird ein Index nicht mit einer Objektreferenz initialisiert, dann bleibt dort immer der Wert null
gespeichert. (Im Beispiel oben der Index 5
.)
Wenn du nun mit einer Zählschleife über ein Objektarray iterierst, dann musst du vor dem Zugriff auf das Objekt prüfen, ob überhaupt ein Objekt vorhanden ist, oder nur null
.
for(int i = 0; i < wuerfel.length; i++) {
Wuerfel w = wuerfel[i];
if( w != null ) {
w.werfen();
}
}