java 中的别名机制

来源:互联网 发布:adobe encore mac 编辑:程序博客网 时间:2024/05/18 01:43

        将一个对象赋值给另一个对象,实际是将引用从一个地方复制到另一个地方。这意味着假若对对象使用c=d,那么c和d都指向原本只有d指向的那个对象,下面这个例子将向大家阐释这点。

     

package gao.com;class Test{int number;}public class Assigment {   public static void main(String[]args){   Test t1=new Test();   Test t2=new Test();   t1.number=25;   t2.number=32;   System.out.println("t1.number="+t1.number+" t2.number="+t2.number);   t1=t2;   System.out.println("t1.number="+t1.number+" t2.number="+t2.number);   t1.number=1;   System.out.println("t1.number="+t1.number+" t2.number="+t2.number);   }}/* 输出t1.number=25 t2.number=32t1.number=32 t2.number=32t1.number=1 t2.number=1*/

Test 类非常简单,它的两个实例是在main()里创建的。对每个Test类对象number域都赋予了一个不同的值。然后将t2赋给t1,接着又修改了t1.在很多语言中我们会期望t1和t2总是相互独立,但由于赋值操作是一个对象的引用,所以修改t1的时候也改变了t2,这是由于t1和t2包含相同的引用,它们指向相同的对象。

0 0