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);
}
}
将输出以下内容:
Toy number in play 5
Toy number in play after increement 6
Toy number in main 5
在C++中,可以通过toyNumber
变量作为引用传递.如下所示:
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
发布于 2018-02-28 08:58:05
选择1:使toyNumber成为类中的公共成员变量
class MyToy {
public int toyNumber;
}
然后将对MyToy的引用传递给方法。
void play(MyToy toy){
System.out.println("Toy number in play " + toy.toyNumber);
toy.toyNumber++;
System.out.println("Toy number in play after increement " + toy.toyNumber);
}
选择2:返回值而不是通过引用传递
int play(int toyNumber){
System.out.println("Toy number in play " + toyNumber);
toyNumber++;
System.out.println("Toy number in play after increement " + toyNumber);
return toyNumber
}
这个选择主要需要对调用站点进行一个小的更改,以便它可以读取,toyNumber = temp.play(toyNumber);
...
选择3:使其成为类或静态变量
如果这两个函数是同一个类或类实例上的方法,则可以将toyNumber转换为类成员变量。
选择4:创建一个int类型的单一元素数组并传递
void play(int [] toyNumber){
System.out.println("Toy number in play " + toyNumber[0]);
toyNumber[0]++;
System.out.println("Toy number in play after increement " + toyNumber[0]);
}
发布于 2018-02-28 10:41:57
Java不是通过引用调用它是只按值调用
public class XYZ {
public static void main(String[] arg) {
StringBuilder toyNumber = new StringBuilder("5");
play(toyNumber);
System.out.println("Toy number in main " + toyNumber);
}
private static void play(StringBuilder toyNumber) {
System.out.println("Toy number in play " + toyNumber);
toyNumber.append(" + 1");
System.out.println("Toy number in play after increement " + toyNumber);
}
}
此代码的输出:
run:
Toy number in play 5
Toy number in play after increement 5 + 1
Toy number in main 5 + 1
BUILD SUCCESSFUL (total time: 0 seconds)
https://stackoverflow.com/questions/-100007446
复制相似问题