第5部分(第2/5 页)
ringname;city;}
5。3new操作符
操作符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=”北?copy;大学”;u1。city=”北?copy;”;u2。name=”清华大学”;u2。city=”北?copy;”;System。out。println(”大学:”+u1。name+”城市:”+u1。city);System。out。println(”大学:”+u2。name+”城市:”+u2。city);}}这个例子创建了两个University的对象,并且对它们的name、city分别赋了不同的值,这说明这两个对象是真正分离的。下面是该程序运行后的输出结果。C:》javaTwoUniversity大学:北?copy;大学城市:北?copy;大学:清华大学城市:北?copy;
5。4点(。?copy;操作符点(。?copy;操作符用来接收一个对象的实例变量和成员函数。下面是用点操作符来接收实例变量的一般形式。objectreference。variablename
这里objectreference是一个对象实例,variablename是这个对象里你想接收的实例变量。下面的程序段说明了怎样用点操作符来给实例变量赋值。
u。name=”北?copy;大学”;u。city=”北?copy;”;下面说明怎样用点操作符来得到实例变量的值。System。out。println(”大学:”+u。name+”城市:”+u。city);通过向类University里加入一个成员函数main,我们创建了一个完整的例子,它使用了new操作符来创建一个University,用点操作符来赋值,然后打印结果。classUniversity{Stringname;city;publicstaticvoidmain(Stringargs''){Universityu=newUniversity();u。name=”北?copy;大学”;u。city=”北?copy;”;System。out。println(”大学:”+u。name+”城市:”+u。city);}}
运行这个程序后,就会得到下面的结果。C:》javaUniversity大学:北?copy;大学城市:北?copy;
5。5成员函数定义
成员函数,是类的功能接口,是类定义里的一个子程序,在类的定义里和实例变量处于同一级别。你必须通过一个类的实例来调用成员函数。成员函数可以
本章未完,点击下一页继续。