public static void main(String argv[]){
Test3 o = new Test3();
o.amethod();
}
public void amethod(){
int i = 99;
ValHold v = new ValHold();
v.i=30;
another(v,i);
System.out.println( v.i ); //在another(v,i)中v指向的i已被重新赋值,20.
//第三个输出值,v.i为20.
}
public void another(ValHold v, int i){
i=0;
v.i = 20; //给对象属性赋值
ValHold vh = new ValHold(); //创建新的ValHold对象,此时vh.i=10.
v = vh; //将vh的索引地址付给v
System.out.println(v.i); //第一个输出值,v.i及时vh.i是10.
System.out.println(i); //第二个输出值,i是局部变量,为0.
}
建议lz把print()都改成println(),这样结果便于观察 |