"Grundkurs Programmieren in Java - (8. Auflage, 2018)"
2001-2018, Carl Hanser Verlag

Lösungsvorschlag zu Aufgabe 4.1 (Version 1.1)

(c) 2001-2018 D. Ratz, D. Schulmeister-Zimolong, 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:
  1. Explizite Felderzeugung mittels new:
        a = new double[5];
      
  2. Mittels Initialisierliste bei der Deklaration:
        double[] a = {1.1, 2.2, 3.3, 4.4, 5.5};
      
  3. 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][];
    }
  }