我做了两个课程,一个是:
public class JavaApplication5 {
public static void main(String[] args) {
int y=0;
cats catobject = new cats();
catobject.ma(y);
System.out.println(y);
}
}
另一个是:
class cats {
public void ma(int x){
x=x+9;
}
}
它应该打印9,因为方法ma应该将9添加到整数y,而是打印出0.为什么?
答案 0 :(得分:1)
将整数传递给java中的方法时,该方法会接收该整数的副本。它不会修改原件。有关详细信息,请参阅此链接:http://javapapers.com/core-java/java-pass-by-value-and-pass-by-reference/
要使代码正常工作,请将其修改为返回int
。像这样:
public class JavaApplication5 {
public static void main(String[] args) {
int y=0;
cats catobject = new cats();
y = catobject.ma(y);
System.out.println(y);
}
}
class cats {
public int ma(int x){
return x+9;
}
}