Hallo!
Ich habe eine Frage zu diesem Code:
Die erste Ausgabe ist klar (6)
Dann wird test aufgerufen und das Array übergeben (bei Array ist das aber call by reference?)
Neues Array x
Array a wird verändert
Die nächste Zeile (a = x) bereitet mir aber Probleme. a und x zeigen doch ab hier auf die selbe Adresse??? Wieso ist dann die nächste Ausgabe 3 und nicht 0?
Wenn ich die Methode test so abändere:
dann erhalte ich diese Ausgabe:
6
1-1-1-
1-1-1-
3
Kann mir das bitte jemand erklären?
Ich habe eine Frage zu diesem Code:
Code:
public class CallTest {
public static void test(int[] a) {
int [] x = new int[3];
a[1] = 3;
a = x;
}
public static void main(String [] args) {
int [] t = {5,6,7};
System.out.println(t[1]);
test( t );
System.out.println(t[1]);
}
}
Dann wird test aufgerufen und das Array übergeben (bei Array ist das aber call by reference?)
Neues Array x
Array a wird verändert
Die nächste Zeile (a = x) bereitet mir aber Probleme. a und x zeigen doch ab hier auf die selbe Adresse??? Wieso ist dann die nächste Ausgabe 3 und nicht 0?
Wenn ich die Methode test so abändere:
Code:
public static void test(int[] a) {
int [] x = new int[]{1,1,1};
a[1] = 3;
a = x;
for (int i:x)
System.out.print(i + "-");
System.out.print("\n");
for (int i:a)
System.out.print(i + "-");
System.out.print("\n");
}
dann erhalte ich diese Ausgabe:
6
1-1-1-
1-1-1-
3
Kann mir das bitte jemand erklären?