这段 Java 代码:
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);
}
}
输出结果如下:
当前玩具数量为 5 增加后的玩具数量为 6 主要玩具数量为 5
在C++中,我可以将toyNumber
变量作为引用传递,以避免阴影 i.e. 创建相同变量的副本,如下所示:
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;
}
以下是C++的输出:
Toy number in play 5 Toy number in play after increement 6 Toy number in main 6
我的问题是,在Java中如何编写等效的代码以获得与C++代码相同的输出,考虑到Java是按值传递而不是按引用传递?