乐文小说网

手机浏览器扫描二维码访问

第5部分(第2页)

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(”清华大学”;”北?copy;”);System。out。println(”大学:”+u1。name+”城市:”+u1。city);system。out。println(”大学:”+u2。name+”城市:”+u2。city);}}

5。8构造函数(Constructor)

每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提?copy了一个特殊的成员函数,叫做构造函数(Constructor?copy;。一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一?copy;定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。构造函数的任务是初始一个对象的内部状态,所以用new操作符创建一个实例后,立刻就会得到一个清楚、可用的对象。下面这个例子里,用构造函数取代了成员函数init。

classUniversity{Stringname;city;University(Stringname;Stringcity)

{this。name=name;this。city=city;}}classUniversityCreate{publicstaticvoidmain(Stringargs''){Universityu=newUniversity(”北?copy;大学”;”北?copy;”);System。out。println(”大学:”+u。name+”城市:”+u。city);}}new语句中类名后的参数是传给构造函数的。

5。9成员函数重载

对于几个意义相近的成员函数,有时使用相同的名字便于理解。因此,Java语言实现了成员函数重载,即可以创建几个名字相同、参数不同的成员函数。成员函数重载提?copy;了Java的多态行为。下面的例子用到了重载。classUniversity{Stringname;city;University(Stringname;Stringcity){this。name=name;this。city=city;}University(){name=”北?copy;大学”;city=”北?copy;”;}}

classUniversityCreateAlt{publicstaticvoidmain(Stringargs''){Universityu=newUniversity();System。out。println(”大学:”+u。name+”城市:”+u。city);}}

这个例子创建了一个University对象,调用了第二个构造函数。下面是它的运行结果。

C:》javaUniversityCreateAlt大学:北?copy;大学城市:北?copy;一个构造函数可以调用另一个构造函数来创建实例。例如:

classUniversity{Stringname;city;University(Stringname;Stringcity)

{this。name=name;this。city=city;}University(){this(”北?copy;大学”;”北?copy;”);}}

第二个构造函数调用了第一个构造函数来完成实例的初始化。你也可以用重载来创建一般的成员函数。下面这个例子里有University类的两个版本的samecity成员函数。samecity判断一个大学是否在一个城市里或一个大学和另一个大学是否在同一个城市里。一个成员函数用city作参数,另一个用University对象作参数。

classUniversity{Stringname;city;University(Stringname;Stringcity)

{this。name=name;this。city=city;}booleansamecity(Stringcity){if

(city。equals(this。city))returntrue;elsereturnfalse;}boolean

samecity(Universityu){returnsamecity(u。city);}}

classUniversityCity{publicstaticvoidmain(Stringargs''){String

city=”上海”;Universityu1=newUniversity(”北?copy;大学”;”

北?copy;”);Universityu2=newUniversity(”清华大学”;”北?copy;”);

System。out。println(”u1=”+u1。name+”;”+u1。city);

System。out。println(”u2=”+u2。name+”;”+u2。city);

System。out。println(”city=”+city);

System。out。println(”u1。samecity(u2)=”+u1。samecity(u2));

System。out。println(”u1。samecity(city)=”+u1。samecity(city));}}

下面是该程序的运行结果。

C:》javaUniversityCityu1=北?copy;大学;北?copy;u2=清华大学;北?copy;city=上海u1。samecity(u2)=trueu1。samecity(city)=false

5。10继承

第二个基本的面向对象机制是继承。继承是关于有层次关系的类?reg;间的概念。一个类的后代可以继承它的祖先的所有变量和成员函数,就象创建自己的一样。一个类的直接父亲叫做它的超类(superclass?copy;。一?copy;你创建了一个象University这样的类,创建它的子类是很简单的。一个类的子类是它的继承了实例变量和成员函数的特殊的版本。在这个例子里,我们把University类派生为含有叫做country的第三个元素的子类。

classUniversityWorldextendsUniversity{Stringcountry;UniversityWorld(Stringname;Stringcity;Stringcountry){this。name=name;this。city=city;this。country=country;}UniversityWorld(){this(”北?copy;大学”;”北?copy;”;”中国”);}}

关键词extends用来表示我们要创建University的子类。name和city不需再在UniversityWorld中进行声明,因为它们是从University中继承的。Java允许?

娘亲V5父皇很欠抽  黄帝内经实用手册  东北谜踪  元宝传奇  洪荒老祖已无敌  众语皆悲  节妇的悠然生活  魅魔模拟器  闲巫在都市  产生物  游神传说之界王  史上最拽的十个女人  鬼夜    天空大陆  道君且慢  穿越之正妻诱惑 02.25完结+1番外  要说多少次,我不是人奸!  上古卷轴天际之子  荒界实录  

热门小说推荐
元始魔神

元始魔神

元魔大陆,是魔修的天堂,在这里有的只是魔气竹山携元始魔宝,吞噬万千种魔气,炼化为己用魔焰滔滔,纵横三界,化身成开天辟地的大魔神!...

九真九阳

九真九阳

简介冲击境界失败的苏方,全身经脉扭曲变形,沦为废人,永远无法再修行,却意外得到一面神奇的古镜,而在古镜的深处,他遇到一个来自神秘世界的强大存在,开始走上...

炮灰女配:腹黑男主送上门

炮灰女配:腹黑男主送上门

捡了本破旧的书穿成炮灰女配?他是异世大陆的传奇神话人物,冷酷绝情,出手狠辣,说一不二,爱慕他的女人很多,可是他却只钟于女主一人她不要被炮灰,离男主远一些就好了?于是她努力逃走。两主角都是成长型我我我不是故意吃你豆腐的,这句话,从她嘴里出来,看着面前的阎罗王男主,她声音巨颤。易玄步步逼近,一下子将她挤压在墙与他之间,胸膛的温度贴到她的脸上。妈啊,这阎罗王究竟想怎样啊?呜呜,她好像有点心痒难骚。霸道男主娇弱腹黑配角强势女主...

狂暴穿越

狂暴穿越

二十二世纪恐怖人物秦乱山,被判为死刑犯后强迫进行时空穿越。可是他却发现,第二纪元人类终将毁灭的悲剧。时空之不可逆转,在未来的世界中,他该如何拯救人类。空中城市,第三纪元的进化之地,他在这集装箱遍地的城市能否寻找到答案。没有老爷爷的帮助,没有高科技知识的显摆,神马古诗词人家根本不在乎,在这里他只比野兽高一等。未来的城市世界,第二纪元的人类成为低等动物,不想成为动物园的野兽,那么就要拿出实力来说服别人。在第三纪元的创世纪中是这么记载,我们的神明从蛋壳中出身,手持一柄开天巨斧不小心砸到了脚。他的第一句话是我草,这里是哪里?...

重生33天,鬼后倾天下

重生33天,鬼后倾天下

题记东宫床帏缱绻,他喘息骤停,埋首她胸口,片刻后俊颜血色尽失,震惊道你怎么没有心跳声?前世,太子妃双眸被挖,她被他陷害自挖双眸偿还太子妃。暗房内,他将匕首刺入她心脏,语声温柔而残忍夫子,太子妃眼睛是学生挖的。拜他所赐,活死人还阳。她没有心跳没有呼吸,却行走在人世间。唯一可以续命的方法却是饮用帝王之血。漠北,黄沙漫天飞舞,他和她再见。他震惊她的容貌,执拗带她入宫阿七,平分天下可好?她手持佛珠,无喜无怒血洗天下如何?他利用她获得天香豆蔻,她利用他活下去。她千辛万苦,九死一生得到天香豆蔻。她就在他身边,他却不识真身,把爱恋悉数给了一具尸体。她意欲焚尸活命,他却抱着那个她将她打入死牢,百般凌辱长达三月之久,利刃狠狠插入她的心脏,天香豆蔻给我。她形如鬼魅,狂笑不止欲得天香豆蔻,必先娶我。她是他的妃,人前冷嘲,人后凄凉。红墙碧瓦,美人万千,谁都可以获取他一夜恩宠,唯独没有她。一夜报复欢爱,她身怀鬼胎,所生之子人人恐之惧之。他有爱子珍之疼之,而她的孩子却被他视若草芥敝履。当一切水落石出,他追悔莫及,阿七,你可曾爱过我?她怀抱鬼儿,无悲无欢连心跳都没有的人,怎么爱?我已无力去爱。鬼儿我母后是鬼,我父皇是人,所以我半人半鬼。他们都怕我,其实我自己照照镜子,我本人还是长得挺帅的,就是生气的时候双眸跟喝了牛血一样可红可红了。宫里的人见了我全都跟得了羊癫疯一样,浑身发抖不说还口吐白沫,我看了通常会一口唾沫射过去。我闯祸了,因为我唾沫有毒,那人直接把我唾沫给吞了进去,当场毙命。母后拿佛珠打我,我一边翘着小粗腿,一边嗑瓜子,我嫌我母后打的太轻了,女人就是心软。我有受虐倾向,我希望别人狠狠打我,这样我才有被重视的感觉,那种感觉一定很幸福。我在母后这里没找到,所以我去找父皇。我对父皇说父皇,你宠妃被我一口唾沫毒死了。我撅着屁股喜滋滋的等着父皇来揍我,谁知父皇却说宫里除了我和你母后,其他人随你便。我傻眼,父皇以为他这么做,母后就会原谅他吗?母后曾对父皇说过就这样凑合过吧!别折腾了。我也觉得别瞎折腾了,一个不爱,一个爱,我觉得没戏...

造化自然

造化自然

造化自然是仙武大圣写的仙侠修真类小说何为造化?造之一字是为创造,化则为变化也,世间有一功法名曰造化天经其内蕴含造化之玄妙!且看少年杨天如何凭此功法逆天而行,修造法,掌化术,入九幽,踏清天,屹立世间巅峰。大道三千,我掌造化!!!...

每日热搜小说推荐