Kann ich den Wert eines Feldes (Array) auch außerhalb der main Methode ändern, wenn das Feld (Array) in der main Methode erstellt wurde?

Ja, das geht, wenn du das Array als Parameter übergibst. Das funktioniert, weil Array ein Referenzdatentyp ist.

Im Codebeispiel wird in der main-Methode ein Array a angelegt. Eine Referenz auf das Array wird der Methode foo() übergeben. Die Arrayelemente von a werden in der Methode foo() um Eins inkrementiert. Anhand der Testausgabe in der main-Methode sieht man, dass sich der Inhalt des Arrays geändert hat.

public static void main(String[] args) {
    int a[] = { 1, 2, 3, 4 };
    foo(a);
    System.out.println(Arrays.toString(a)); // Ausgabe: [2, 3, 4, 5]
}

static void foo(int a[]) {
    for (int i = 0; i < a.length; i++) {
        a[i]++;
    }
}
de German
X