登陆注册
8183300000097

第97章 2 构造器

小A:“什么是构造器?”

大B:“首先要注意的是Java的构造器并不是函数,所以他并不能被继承,这在我们extends的时候写子类的构造器时比较的常见,即使子类构造器参数和父类的完全一样,我们也要写super就是因为这个原因。构造器的修饰符比较的有限,仅仅只有public private protected这三个,其他的例如任何修饰符都不能对其使用,也就是说构造器不允许被成名成抽象、同步、静态等等访问限制以外的形式。因为构造器不是函数,所以它是没有返回值的,也不允许有返回值。但是这里要说明一下,构造器中允许存在return语句,但是return什么都不返回,如果你指定了返回值,虽然编译器不会报出任何错误,但是JVM会认为他是一个与构造器同名的函数罢了,这样就会出现一些莫名其妙的无法找到构造器的错误,这里是要加倍注意的。”

小A:“在我们extends一个子类的时候经常会出现一些意想不到的问题,你能和我说说一些和构造器有关的吗?”

大B:“首先说一下Java在构造实例时的顺序(不讨论装载类的过程),构造的粗略过程如下1、分配对象空间,并将对象中成员初始化为0或者空,java不允许用户操纵一个不定值的对象。2、执行属性值的显式初始化。3、执行构造器。4、将变量关联到堆中的对象上。”

小A:“能介绍一下准备知识吗?以备一会来详细了解这个的流程。”

大B:“this()super()是你如果想用传入当前构造器中的参数或者构造器中的数据调用其他构造器或者控制父类构造器时使用的,在一个构造器中你只能使用this()或者super()之中的一个,而且调用的位置只能在构造器的第一行,在子类中如果你希望调用父类的构造器来初始化父类的部分,那就用合适的参数来调用super(),如果你用没有参数的super()来调用父类的构造器(同时也没有使用this()来调用其他构造器),父类缺省的构造器会被调用,如果父类没有缺省的构造器,那编译器就会报一个错误,注意这里,我们经常在继承父类的时候构造器中并不写和父类有关的内容,此时如果父类没有缺省构造器,就会出现编译器添加的缺省构造器给你添麻烦的问题了哦!例如:Class b extends a{public b(){}}就没有任何有关父类构造器的信息,这时父类的缺省构造器就会被调用。”

举个SL-275中的例子

public class Manager extends Employee{

private String department;

public Manager(String name,double salary,String dept)

{

super(name,salary);

department=dept;

}

public Manager(String n,String dept){

super(name);

department=dept;

}

public Manager(String dept){//这里就没有super(),编译器会自动地添加一个空参数的缺省super构造器,此时如果Employee类中没有空参数的缺省构造器,那就会导致一个编译错误。

department=d;

}

}

大B:“你必须在构造器的第一行放置super或者this构造器,否则编译器会自动地放一个空参数的super构造器的,其他的构造器也可以调用super或者this,调用成一个递归构造链,最后的结果是父类的构造器(可能有多级父类构造器)始终在子类的构造器之前执行,递归的调用父类构造器。在具体构造类实例的过程中,上边过程的第二步和第三步是有一些变化的,这里的顺序是这样的,分配了对象空间及对象成员初始化为默认值之后,构造器就递归的从继承树由根部向下调用,每个构造器的执行过程是这样的:1、Bind构造器的参数。2、如果显式的调用了this,那就递归调用this构造器然后跳到步骤5.3、递归调用显式或者隐式的父类构造器,除了Object以外,因为它没有父类。4、执行显式的实例变量初始化(也就是上边的流程中的第二步,调用返回以后执行,这个步骤相当于在父构造器执行后隐含执行的,看样子像一个特殊处理)。5、执行构造器的其它部分。”

小A:“好像有点明白了。”

大B:“这里的步骤很重要哦!从这个步骤中可以很明显的发现这个实例初始化时的递归调用过程。”

同类推荐
  • 办公设备使用与维护

    办公设备使用与维护

    信息技术的发展正前所未有地改变着人类生活的每一个层面,以信息化、全球化和高科技为特征的新经济浪潮滚滚而来,机遇与挑战并存。办公自动化是信息化时代最重要的标志之一,办公要实现自动化,当然离不开办公设备。
  • 《Internet实用技术》作业集

    《Internet实用技术》作业集

    随着计算机应用的普及和社会信息化水平的提高,Internet已走进我们的生活。《Internet实用技术》这门课将带领我们走进网络的神秘殿堂,让我们认识网络,了解网络,进而学会使用网络,维护网络。其范围涵盖了在授课过程中所讲授的内容,题型多样,内容丰富,并附有两套模拟题,最后附有答案。学生可按照课程进度做习题来巩固和掌握知识。本作业集由李琳编写,由西北工业大学网络教育学院负责组稿和审定。因为时间仓促,水平有限,错误和不当之处在所难免,敬请读者批评指正。
  • 中文版AutoCAD2005建筑绘图精讲精学

    中文版AutoCAD2005建筑绘图精讲精学

    本书从中文版AutoCAD2005建筑绘图的基础进行介绍,讲解了建筑绘图的环境设置、二维建筑图形的绘制、二维建筑及装饰图形的编辑、建筑绘图中的文字标注和图形查询、建筑装潢平面图中的尺寸标注、建筑绘图中图块的应用、建筑平面图的绘制、建筑立面图的绘制、建筑剖面图的绘制、建筑绘图中的三维造型、三维建筑模型绘制及建筑图纸的布局与打印输出等内容。
  • 信息安全

    信息安全

    我们不得不看到,全球信息化发展,使信息安全成为维护国家安全的重要屏障,信息安全问题正在为国与国之间带来新的制约关系。当然,这只是我们强调信息安全极端重要性的一个原因。事实上,信息安全已经上升为国家安全的重要组成部分,这是信息时代国家安全的明显特征,也是很多国家的共识。但与其他国家安全元素不同,如果脱离信息化发展的环境,“信息安全”只是一个抽象的目标,它要通过对国家的政治、经济、文化等方面的影响体现其对国家安全的意义,并以保障信息化发展为目标取向。因此,我们说信息安全是信息时代国家安全的基石。
  • 如何处理电脑故障

    如何处理电脑故障

    本书以问答的方式介绍了电脑会出现的各种故障,内容包括了音箱声音失真,如何处理?如何做好电脑的日常维护等等问题。
热门推荐
  • 明伦汇编人事典十四岁部

    明伦汇编人事典十四岁部

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 连理枝上比翼鸟

    连理枝上比翼鸟

    唐朝白居易在《长恨歌》中写道“在天愿作比翼鸟,在地愿为连理枝”。司衍和叶楚卿就好像音乐中的比翼鸟和连理枝,比翼双飞。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 霸道总裁小娇妻!

    霸道总裁小娇妻!

    冷熙轩出了名的冷漠,除了对她,除了霸道还是霸道。
  • 红颜殇天下取舍

    红颜殇天下取舍

    他曾许诺她一生一世一双人,后来,他登基为皇,她做了皇后。从什么时候开始,他变心了。女儿发烧时,她彻夜守着却不见他来,他此时在别的妃子旁边。她被陷害了,他在众目睽睽之下罚她给嫔妃下跪。。。他在事后总说:兮儿,朕是迫不得已。终于有一天她要被废时,他在冷眼旁观,对她说:苏瑾兮,你不配做朕的皇后。她终于明白,她该离开了。。。
  • 鹏回首

    鹏回首

    这部长篇小说通过主人公洛古大起大落的曲折经历,反映了经济特区初创期尖锐复杂的矛盾斗争和夺取建设成果的艰辛历程。小说所揭示的尖锐复杂的社会矛盾和触目惊心的党内腐败问题,发人深思。重彩浓墨塑造的改革家、革命老干部洛古的丰满形象,催人泪下。故事情节随着洛古命运的几上几下而显跌宕起伏,慑人心魄,让人爱不释手。
  • 胭脂绝代·玉娉婷

    胭脂绝代·玉娉婷

    步步生金莲,行行如玉立,最美丽时她做了他的妾,怎奈弱水三千难取一瓢。浮世间来来回回,起起落落,看繁华落尽,王朝兴替,躲不开的是命运的纠缠……
  • 探索未知-人类生活环境与物理

    探索未知-人类生活环境与物理

    探索未知,追求新知,创造未来。本丛书包括:奇特的地理现象、遗传简介、生活物理现象解读、奥妙无穷的海洋、认识微生物、数学经典题、垃圾与环境、湛蓝浩瀚四大洋、生物的行为、漫谈电化学、数学古堡探险、中国的世界文化遗产、中国古代物理知识、中国三大三角洲、中国的地理风情、多姿的中国地形、认识少数民族医学、悠悠的中国河流等书籍。
  • 九州霓尘

    九州霓尘

    兵器,是九州大地上唯一的王,是个九州之人,都想成为英雄,是个英雄,往往都想成为一方霸主,每个霸主,都有一统天下的豪情壮志。在九州大地,拥有一把绝世神兵,成为绝代英雄,是每个御兵者的夙愿。兵器,战争是主流,感情为辅,讲述一个新的世界。