15.3 Erzeugen eines Feldes mit new-Operator
 
Deklaration mit new In den wenigsten Fällen macht es Sinn, vom Programmierer über den Quelltext die Daten in ein Feld einzutragen zu lassen. Vielmehr sollen die einzelnen Plätze während das Programm läuft belegt werden können. Andererseits muss beim Anlegen eines Feldes festgelegt werden, wie viel Platz es im Speicher belegt. Wie kann man beiden Interessen gerecht werden? Mit der Zeile

boolean[] ungerade = new boolean[5];

wird ein Feld mit 5 Plätzen für boolsche Werte deklariert und initialisiert. Werte sind noch nicht eingetragen. Alternativ lässt sich die Deklaration und Initialisierung auch auf zwei Zeilen verteilen. Das ist insbesondere dann wichtig, wenn Deklaration und Initialisierung an verschiedenen Stellen vorgenommen werden sollen.

boolean[] gerade;
...
gerade = new boolean[5];
 

Download:
Feld3.java
public class Feld3{
  public static void main(String[] args){
    boolean[] gerade = new boolean[5];
    for (int i=0;i<3;i++) {
      gerade[i]=(i%2==0);
    }
    for (int i=0;i<gerade.length;i++){
      System.out.println(gerade[i]);
    }
  }
}

Das Programm trägt an den Plätzen, deren Platznummern gerade sind den Wert true ein. Die Ausgabe liefert:

true
false
true
false
false

Ein Blick auf die Schleife zeigt, dass nur die ersten drei Plätze, also die mit den Platznummern 0 bis 2 belegt werden; die Ausgabe liefert aber die Werte aller deklarierter Plätze . Wir erkennen daran, dass nicht explizit initialisierte Plätze mit false vorinitialisiert sind.

Wie flexibel ein Feld ist, zeigt das nachfolgende Programm, das Sieb des Erathostenes. Wer sich an dieses Sieb des Erathostenes nicht mehr erinnert kann es hier noch einmal nachlesen.

 
zu 15.4 Sieb des Erathostenes (das Programm)
zur Startseite www.pohlig.de  (C) MPohlig 2004