开发测试学习
目录

操作符new用来生成一个类的实例,下面这个例子生成了类University的一个实例,存放在变量u中。 Universityu=newUniversity();在此例中,变量u指向这个对象,但并不真正包含这个对象。你可以用多个变量指向同一个对象。下面的例子中,创建了一个University的对象,但创建了两个指向它的变量。 Universityu=newUniversity();Universityu2=u; 对u2所指向的对象的任何改动都会对u所指向的对象起作用,因为它们是同一个对象。对u和u2的赋值只是把它们指向这个对象,既没有分配内存,也没有复制这个对象的任何部分。对u的再赋值只是简单地去掉了u和原来对象的联系,并不影响对象本身,下面的例子说明了这种情况。 Universityu=newUniversity();Universityu2=u;u=null; 尽管u被赋值为null,u2仍指向原来由操作符new创建的对象。在前面的例子里,我们生成了一个对象并且指向了它两次。这就允许两个变量改变同一个对象。创建一个新的对象时,可直接对它的实例变量赋值。每个对象都有它所属类的实例变量的拷贝,每个对象的实例变量都是和其他对象的实例变量分离的,所以改变一个对象的实例变量不会影响其他对象的实例变量。下面的例子创建了两个University的对象,并对它们分别赋值:

  classTwoUniversity{
    publicstaticvoidmain(Stringargs[]){
      Universityu1=newUniversity();
      Universityu2=newUniversity();
      u1.name="北大学";
      u1.city="北";
      u2.name="清华大学";
      u2.city="北";
      System.out.println("大学:"+u1.name+"城市:"+u1.city);
      System.out.println("大学:"+u2.name+"城市:"+u2.city);
    }
  }

这个例子创建了两个University的对象,并且对它们的name、city分别赋了不同的值,这说明这两个对象是真正分离的。下面是该程序运行后的输出结果。C:>javaTwoUniversity大学:北大学城市:北大学:清华大学城市:北