"Grundkurs Programmieren in Java - (6. Auflage, 2011)"
2001-2011, Carl Hanser Verlag
Lösungsvorschlag zu Aufgabe 5.1 (Version 1.1)
(c) 2001-2011 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
a)
Bei der Deklaration werden durch Angabe des Komponententyps
und der Dimensionsanzahl (Anzahl der leeren Klammerpaare)
lediglich die Variablen angelegt, die als Referenzen auf die
Feldobjekte dienen.
Erst bei der Erzeugung wird der durch die Feldvariable referenzierte Speicherplatz
bereitgestellt.
b)
Die drei Möglichkeiten sind:
- Explizite Felderzeugung mittels new:
a = new double[5];
- Mittels Initialisierliste bei der Deklaration:
double[] a = {1.1, 2.2, 3.3, 4.4, 5.5};
- Durch Kombination von 1. und 2.:
a = new double[] {1.1, 2.2, 3.3, 4.4, 5.5};
c)
Die einzelnen Elemente haben keinen Namen. Man greift über die
indizierte Feld-Variable zu. Als Indizes sind 0 bis
n-1 erlaubt, falls n die Größ des Feldes ist.
Das letzte Element eines Feldes mit dem Namen a hat
den Index a.length-1. Ein unzulässiger Index führt zu einer
ArrayIndexOutOfBoundsException.
d)
Am besten schreibt man:
byte a, b;
byte[] aReihe, bReihe, aZeile, bZeile;
byte[][] aMatrix, bMatrix;
e)
int[][][][] Feld = new int[6][][][];
for (int d1 = 0; d1 < Feld.length; d1++) {
Feld[d1] = new int[10][][];
for (int d2 = 0; d2 < Feld[d1].length; d2++) {
Feld[d1][d2] = new int[8][];
}
}