Vorlesung Informatik 2 - Teil A: Java Kurs

3.3 Arrays und Methoden

Wenn Arrays als Parameter einer Methode übergeben werden, ist wieder wichtig, dass Arrays Objekte sind:

public static void main(String[] a){
   int[] x = {1,2,3};
   tuwas1(x);
   tuwas2(x);
   x=verdopple(x);
}

Wichtig (wie immer): Die gerufenen Methoden bekommen immer eine Kopie der Original-Variable x. Aber x ist nicht das Array selbst, sondern die Referenz!

static void tuwas1(int[] k){
    k[2]=42;
}

Diese Methode ändert das Array, d.h. auch im rufenden Programm hat  x[2] jetzt  den Wert 42.

static void tuwas1(int[] m){
    m = new int[10];
}
Diese Methode ändert nichts im rufenden Programm, denn m ist eine lokale Variable der Methode tuwas2.    

static int[] verdopple(int[] n){
    int[] neu = new int[n.length*2];
    for(int i=0;i<n.length;i++) neu[i]=n[i]; return neu; }

So kann man ein neues Array doppelter Größe erzeugen, das in der ersten Hälfte die Werte aus n enthält. Allerdings entsteht dabei ein Memory-Leak, denn das alte Array wir nach dem Aufruf von verdopple dereferenziert. 

Lehrvideo  (YouTube)