Versuche gerade Java zu lernen und würde gerne wissen, ob ich das richtig verstanden habe:
Wäre die Ausgabe des untenstehenden Code-Fragments:
1: 1
2: 1
3: 1
4: 1
Sehe ich das richtig, dass die int-Variable n, die zu Beginn der start-Methode erzeugt und mit 0 initialisiert wird, nicht identisch ist mit der Klassenvariablen this.n vom Objekt zahl und deshalb this.n auch nach dem Aufruf von calc(n) noch bei 0 steht?
Oder sind beide Variablen/Objekte identisch und die Ausgabe ist deshalb bei 3+4 jeweils 2 statt 1?
Gegeben sei die folgende Klasse Zahl:
public class Zahl {
public int n;
public Zahl(int n) {
this.n = n;
}
}
Vollziehen Sie die Ausführung des folgenden Java-Programmfragments beim
Aufruf von start() nach. Notieren Sie die erzeugten Ausgaben und erläutern
Sie kurz die Gründe für eventuelle Unterschiede und Gemeinsamkeiten der
ausgegebenen Werte.
void calc(int n) {
++n;
System.out.println("1: " + n);
}
void calc(Zahl zahl) {
zahl.n++;
System.out.println("3: " + zahl.n);
}
void start() {
int n = 0;
Zahl zahl = new Zahl(0);
calc(n);
System.out.println("2: " + n);
calc(zahl);
System.out.println("4: " + zahl.n);
}
Wäre die Ausgabe des untenstehenden Code-Fragments:
1: 1
2: 1
3: 1
4: 1
Sehe ich das richtig, dass die int-Variable n, die zu Beginn der start-Methode erzeugt und mit 0 initialisiert wird, nicht identisch ist mit der Klassenvariablen this.n vom Objekt zahl und deshalb this.n auch nach dem Aufruf von calc(n) noch bei 0 steht?
Oder sind beide Variablen/Objekte identisch und die Ausgabe ist deshalb bei 3+4 jeweils 2 statt 1?
Gegeben sei die folgende Klasse Zahl:
public class Zahl {
public int n;
public Zahl(int n) {
this.n = n;
}
}
Vollziehen Sie die Ausführung des folgenden Java-Programmfragments beim
Aufruf von start() nach. Notieren Sie die erzeugten Ausgaben und erläutern
Sie kurz die Gründe für eventuelle Unterschiede und Gemeinsamkeiten der
ausgegebenen Werte.
void calc(int n) {
++n;
System.out.println("1: " + n);
}
void calc(Zahl zahl) {
zahl.n++;
System.out.println("3: " + zahl.n);
}
void start() {
int n = 0;
Zahl zahl = new Zahl(0);
calc(n);
System.out.println("2: " + n);
calc(zahl);
System.out.println("4: " + zahl.n);
}