会员书架
首页 > 游戏竞技 > java语言入门电子书推荐 > 第5部分

第5部分(第3/5 页)

目录
最新游戏竞技小说: 英雄联盟之少年王者足坛偶像网游之无悔人生NBA之残暴网游之说服天下NBA之篮球之王重临巅峰之冠军之路黑袍剑仙网游之圣隐魔皇洪荒之剑帝网游之奇迹进球至上足球之巨星培养系统王者:励志登顶国一对抗路!身为冷兵器高手会玩网游很合理吧理综挂科后我被迫屠龙了海洋求生:开局竹竿漂流足球:我从小就是天才网游之我意纵横鬼神游戏

不用点操作符而直接使用实例变量。成员函数带有输入参数,具有

某种类型的返回值。成员函数定义的一般形式如下:typemethodname(formal…parameter…list){method…body;}这里type指的是成员函数的返回值的类型,如果没有返回值,就用无值(void?copy;类型。methodname可以是任何合法的标识符,但不能与当前的类名相同。formal…parameter…list是用逗号分隔的类型、标识符对的序列。如果没有参数,括号里就是空的。还是用我们的University的例子,下面的成员函数用来初始化两个实例变量。成员函数是在类的大括号?reg;内定义的,和实例变量所处的范围相同。classUniversity{Stringname;city;voidinit(Stringa;Stringb){name=a;city=b;}}

注意,我们这里直接给name和city赋值,而没有象以前那样用u1。name。这是因为每个成员函数都在类的个别实例内执行。我们创建的类的实例具有它自己的实例变量,所以成员函数可直接使用它们。

5。6成员函数调用

可以用点(。?copy;操作符来调用一个类的实例的成员函数。成员函数调用的一般形式如下:objectreference。methodname(parameter…list);这里,objectreference是指向某个对象的变量,methodname是objectreference所属类的一个成员函数,parameter…list是用逗号分隔的变量或表达式的序列,它们要与该成员函数的定义的参数个数及类型匹配。在这个例子里,我们可以对任何University对象调用成员函数init来给name和city赋值。下面的程序段说明了怎样完成这个工作。Universityu=newUniversity();u。init(”北?copy;大学”;”北?copy;”);这个例子创建了University的一个实例,存放在u中。通过点操作符来调用这个实例的init成员函数,把”北?copy;大学”和”北?copy;”分别传递给参数a和b。在init成员函数内部,name和city直接指向u所指向的对象的实例变量。把name赋值为”北?copy;大学”,city赋值为”北?copy;”,然后返回。在这个例子里,init被定义为无值(void?copy;返回类型。在进行这个成员函数调用后,u指向这个name值和city值改变了的University对象。

5。7thisJava有一个特殊的实例值叫this,它用来在一个成员函数内部指向当前的对象。在前面的例子里,我们调用u。init,一?copy;进入init成员函数内部,this就会指向u所指向的对象。在Java里,在同一个范围定义两个相同名字的局部变

量是不可以的。有趣的是,局部变量、成员函数的参数可以和实例变量的名字相同。前面我们没有用name和city作为成员函数init的参数名字,因为这样它们在成员函数的范围里就把实例变量name和city隐藏了,即name指向参数name,隐藏了实例变量name。this让我们可以直接指向对象本身。下面是另一个版本的init,用name和city作为参数名字,用this来接收当前对象的实例变量。

voidinit(Stringname;Stringcity){this。name=name;this。city=city;}下面是带有新的init初始成员函数的TwoUniversity例子。classUniversity{Stringname;city;voidinit(Stringname;Stringcity){this。name=name;this。city=city;}}classTwoUniversityInit{publicstaticvoidmain(Stringargs''){Universityu1=newUniversity();Universityu2=newUniversity();u1。init(”北?copy;大学”;”北?copy;”);u2。init(”清华大学”;”

本章未完,点击下一页继续。

目录
焚神纪每天都在被侦探逮捕的边缘试探我只是忘了忘记你剩下的盛夏神降皇灵天赋是卡牌培育
返回顶部