Dieser Java-Code:
public class XYZ {
public static void main(){
int toyNumber = 5;
XYZ temp = new XYZ();
temp.play(toyNumber);
System.out.println("Toy number in main " + toyNumber);
}
void play(int toyNumber){
System.out.println("Toy number in play " + toyNumber);
toyNumber++;
System.out.println("Toy number in play after increement " + toyNumber);
}
}
gibt dies aus:
Spielzeugnummer im Spiel 5 Spielzeugnummer im Spiel nach Vereinbarung 6 Spielzeugnummer in Haupt 5
In C ++ kann ich die toyNumber
Variable als Referenz übergeben, um Schatten zu vermeiden, dh eine Kopie derselben Variablen wie unten zu erstellen:
void main(){
int toyNumber = 5;
play(toyNumber);
cout << "Toy number in main " << toyNumber << endl;
}
void play(int &toyNumber){
cout << "Toy number in play " << toyNumber << endl;
toyNumber++;
cout << "Toy number in play after increement " << toyNumber << endl;
}
und die C ++ - Ausgabe lautet wie folgt:
Spielzeugnummer im Spiel 5 Spielzeugnummer im Spiel nach Vereinbarung 6 Spielzeugnummer in Haupt 6
Meine Frage ist: Was ist der äquivalente Code in Java, um die gleiche Ausgabe wie der C ++ - Code zu erhalten, da Java eher als Wert als als Referenz übergeben wird ?
toyNumber
in der main
Methode deklarierte Variable in der Methode nicht im Gültigkeitsbereich liegt play
. Das Shadowing in C ++ und Java erfolgt nur, wenn Bereiche verschachtelt sind. Siehe en.wikipedia.org/wiki/Variable_shadowing .