调用一个方法,它不会做它的工作

时间:2016-07-17 01:48:24

标签: java class methods

我做了两个课程,一个是:

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.为什么?

1 个答案:

答案 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;
  }
}