这是因为对于java来说参数都是传值引用的,
如果public void Increment (Integer N) { 
 N = new Integer( N.intValue() + 1); 
 } 
在方法中对外部传入的实参(本例中就是X)是不会有影响的,也就是说X的地址不会因为对N的重新赋值而变化,在方法中只能改变对象的内容。
1. class Example extends Object { 
int a;
public Example(int x) {
a=x;
}
public String toString() {
return String.valueOf(a);
}
2. public void Increment (Example N) { 
3. N.a+=1;
4. } 
public void Increment2(Example N) { 
N=new Example(N.a+1);
}
6. public void Result(int x) { 
7. Example X = new Example(x); 
8. Increment(X); 
9. System.out.println("New value is" + X); 
10. } 
11. }
如果x=30,那么调用Increment(X); 的结果就是31,
而Increment2(X); 就是30;