红联Linux门户
Linux帮助

给对象引用变量赋值

发布时间:2006-05-03 14:55:32来源:红联作者:reing
对象变量的赋值和你直觉期望的不同。例如,你认为下面的程序段是做什么呢?

Box b1 = new Box();
Box b2 = b1;

你可能认为,变量b2被赋值为变量b1对象引用的一个拷贝。也就是,你可能认为b1和b2引用的是不同的对象,但实际情况却相反,b1和b2将引用同样的对象。将b1赋值给b2并没有分配任何内存或对原对象做任何部分的拷贝。由于它们是同一个对象,因此通过变量b2对对象的改变也将影响b1所对应的对象。


尽管b1和b2都引用同一个对象,但是他们之间没有任何其他的关系。例如,接下来对b1的赋值仅仅使b1脱离(unhook )初始对象,而没有影响对象或影响b2。

Box b1 = new Box();
Box b2 = b1;
// ...
b1 = null;

这里,b1被设置为空,但是b2仍然指向原来的对象。

注意:当你将一个对象引用赋值给另一个对象引用时,你并没有创建该对象的一个拷贝,而是仅仅对引用的一个拷贝。
文章评论

共有 0 条评论