本帖最后由 刘源 于 2012-8-25 19:07 编辑
public class Demo{
int i = 10;
public static void value(Demo d){
d.i = 20;//第三步,这里d.i=20。将地址d中的变量i赋值为20.
Demo d1 = new Demo();//第四步,然后你创建d1,但d1.i=10,没错把。
d = d1;//第五步,你将d1地址给了d.所以选择d和d1都指向d1.i=10.
System.out.println(d.i);//第六步 ,所以打印d.i=d1.i=10。
}
public static void main(String [] args){
Demo d = new Demo();//第一步
value(d);//第二步,注意当这一步执行完后因为d1是方法中定义的所以d1地址就不存在了。所以选择d又回到以前的地址。
System.out.println(d.i);//第七步,因为现在是执行主函数中的d的地址,即d.i=20.
}
}
|