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){Diese Methode ändert nichts im rufenden Programm, denn m ist eine lokale Variable der Methode tuwas2.
m = new int[10];
}
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.