登陆注册
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:“这里的步骤很重要哦!从这个步骤中可以很明显的发现这个实例初始化时的递归调用过程。”

同类推荐
  • 中文版AutoCAD2011基础与应用案例教程

    中文版AutoCAD2011基础与应用案例教程

    本书采用项目教学方式,通过大量案例全面介绍了AutoCAD2011软件的功能和应用技巧。全书共分8个项目,内容涵盖AutoCAD2011基本操作,绘制与编辑图形,标注尺寸,添加文字注释与应用表格,创建与应用块,绘制与编辑三维图形,图形输出等。
  • 中文版AutoCAD2005辅助设计宝典

    中文版AutoCAD2005辅助设计宝典

    本书全面、详细地介绍了中文版AutoCAD2005的特点、功能以及使用方法和技巧。全书共分11章,前九章分别介绍了利用中文版AutoCAD2005进行辅助设计的方法和技巧,最后两章讲解了若干综合实例。
  • 互联网创业前奏曲(第二部)——网站运营之人性、策略与实战

    互联网创业前奏曲(第二部)——网站运营之人性、策略与实战

    本书是《互联网创业前奏曲》系列的第二本书,是作者多年互联网实践经验和业界观察的总结,是国内罕有的关于互联网网站运营和用户心理结合的书籍,用通俗的语言阐述互联网运营背后的人性驱动。你想互联网创业吗?你是否在为找不到好的互联网运营策略和方法而发愁?你非常想了解互联网行业?你是否在为自己不了解互联网运营而苦恼?本书针对这些问题列举了很多互联网运营的案例,帮你制定运营策略,更好的修炼和提升运营功力。
  • 组态软件控制技术

    组态软件控制技术

    监控组态软件是完成数据采集与过程控制的专用软件,它以计算机为基本工具,为实施数据采集、过程监控、生产控制提供了基础平台和开发环境。本书从应用角度出发,详细介绍了组态软件应用程序的开发过程。对窗口界面编辑、动画链接、实时和历史趋势、安全机制、I/O设备连接,以及生产应用等内容都做了非常详细的介绍。MCGS是优秀的监控组态软件之一,它功能强大、使用方便,可以非常容易地实现监视、控制、管理的各项功能,并可提供软、硬件的全部接口,方便、快速地进行系统集成,构成不同需求的数据采集与监控系统。本书可作为高等学校计算机应用、自动控制、电子技术、机电技术专业的教材,同时还可作为相关专业工程技术人员的自学用书。
  • 公开时刻

    公开时刻

    本书从传播者分析,内容分析,媒介分析受众与效果分析,传播环境与传播控制分析等几大方面把汶川地震作为重大传播案例,阐释汶川地震的传播学遗产。对政府部门和新闻媒体在危机公关方面做出正面评价。
热门推荐
  • 这个打火机有点怪

    这个打火机有点怪

    这个打火机有点怪,打出来的不是火,而是郭靖、李寻欢、令狐冲、周伯通这些武侠小说里面的武林高手。而且,还可以打出杨玉环、西施、貂蝉、穆桂英这样的历史大美女。并且,还可以打出铁血战士、变形金刚、圣斗士星矢他们。最重要的是,它还可以带你穿越带你飞。除了这些功能之外,这个神秘的打火机里面,还有着狠多狠多狠烧脑的秘密在里面。“因为这个宝贝打火机,俺杨小西是全宇宙最牛笔的丐帮帮主!哈哈~”
  • 笨丫头误惹恶魔校草

    笨丫头误惹恶魔校草

    他们初次相遇在食堂,她一不小心把菜倒在了他的身上,他让她给他洗衣服……他的一次又一次的威胁,甚至让她给他当女仆,他把她霸道的禁锢在自己身边,她无数次想要逃走,后来终于实现,两颗心不知不觉的绑在了一起
  • 漫漫又洲洲

    漫漫又洲洲

    林漫遥,一个鬼马美术少女。陆言洲,一个有点傲娇的总裁。晚宴初遇,会产生怎样的火花呢
  • 续武林西湖高僧事略

    续武林西湖高僧事略

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 盛世潜婚:豪门老公警花妻

    盛世潜婚:豪门老公警花妻

    绝美无双的黑帮老大挽着她的手,出现在她前男友的婚礼上。他含情脉脉地嘴角缓缓勾起,走到一对新人面前,举杯恭祝:“谢谢你的眼拙,让我白捡了个大便宜。”说罢,抱着醉得不省人事的她,直接进了五星级大酒店。
  • “科学与文化”系列科普图书·智慧城市

    “科学与文化”系列科普图书·智慧城市

    城市生活应该如何进行?我们应该如何在城市之中进行智慧的生活?本书将为你介绍。
  • 天行

    天行

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

    辉暗年代

    《辉暗年代》是一部以农村为题材的小说,故事来源于现实生活,描写了50年代末,云南偏远地区,一段祖孙三代的人生坎坷之路。
  • 走出电商困局

    走出电商困局

    本书是作者多年来涉足零售、电商和投资行业的感想、体会与分享。作为中国连锁零售业及电子商务领域的领军人物,历经现代连锁零售业的蓬勃发展,从跨国巨头到内资民营企业,从开创天猫时代到引领当当成功上市,从电商行业到投资行业,其中作为实践者作者有很多的感悟、收获和体验与电商业者分享。过去十几年,借助国内经济高速发展的强劲势头与个人消费的时代红利,中国零售及电子商务行业取得了长足进步。消费力上升,中产阶层快速形成,庞大的市场规模吸引着来自全球的商家,自此我们进入一个商业、服务业快速发展的年代。
  • 昔日之情已是惜别

    昔日之情已是惜别

    (双线1v1)(前期:校园篇)倘若人生道路本来就有,只不过从头再来遍罢?命运之轮已然运转,结局怎样不得而知,在那错综复杂的关系后。。