我努力为这篇文章提出一个标题,但我很想找到一个简单的解释为什么运行以下程序会产生6,5,5而不是5,5,5的输出:
public class TestMethod {
public static void main(String[] args) {
IntegerObject aInt = new IntegerObject(5);
objectIncrease(aInt);
System.out.println(aInt.x);
int bInt = 5;
increase(bInt);
System.out.println(bInt);
Integer cInt = new Integer(5);
increase(cInt);
System.out.println(cInt);
}
public static void objectIncrease(IntegerObject x){
x.increment();
}
public static void increase(int x){
++x;
}}
IntegerObject只是我为了证明我的观点而创建的另一个类。为什么increase(int x)方法创建int x的本地实例,但objectIncrease(IntegerObject x)方法不创建integerObject x的本地实例?