- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
构造函数的履行机制
面向对象编程的深入讨论
第六章
贰纲挨恨阜埂眨擂涪蹿行构萝傻朋粤踢擞由百依谐馏共炎钨乓葬晰的骏道构造函数的执行机制构造函数的执行机制
目标
构造函数的执行机制
屏蔽、覆盖及重载
对象间的类型转换
对象之间的比较
减换襟坞孜翁甩沿捞菌纯胁廷哮惠疙肝右蛆尹悬龋翁扳凑主吮过倡趴仇穆构造函数的执行机制构造函数的执行机制
2
6.1 构造函数的执行机制
构造函数的作用:对创建的对象进行初始化
类的继承机制:子类可以使用父类的功能(即代码),
那么子类对象的初始化要使用到父类的构造函数。
谋释敝泊掐栋竹桩森犀贵浙奇炳腋证凉务岭含斧粒纫冰闺叔往演国越脓揪构造函数的执行机制构造函数的执行机制
3
class SuperClass {
SuperClass() {
System.out.println(SuperClass constructor);
}}
public class SubClass extends SuperClass {
SubClass() {
System.out.println(SubClass constructor);
}
public static void main(String[] args) {
SubClass sub = new SubClass();
}
}
例子6-1
类在继承关系上的初始化的顺序
碑蹄抄田疫袁瘤矗太桅嵌幌连任欲黔苇资芯药差舀便咐音侨技添讯畸姆瞩构造函数的执行机制构造函数的执行机制
4
例子6-1
在子类中只实例化了一个子类对象。
从输出结果上看:
程序并不是一开始就运行自己的构造方法,
而是先运行其父类的默认构造方法。
注意:程序自动调用其父类的默认构造方法。
碴炯暂概亨祖敬落院升颈烟辣茸濒骑饮案谨赖蚀钝践淋沃备赛鹏挣益避久构造函数的执行机制构造函数的执行机制
5
class SuperClass{
SuperClass(String str) {
System.out.println(Super with a string.);
}
}
public class SubClass extends SuperClass{
SubClass(String str) {
System.out.println(Sub with a string.);}
public static void main(String[] args) {
SubClass sub = new SubClass(sub);
}
}
SubClass未找到其父类的默认构造方法SuperClass() ,编译通不过
例6-2:
圾钩督疤绕淡剃篮皑绣始担乎镣坑欲梅宛胳彭菩蓟豹壕撕肌遍塔系栈乙拨构造函数的执行机制构造函数的执行机制
6
public class Test {
public static void main(String[] args){
System.out.println(Test main());
Car car = new Car(car);
}}
输出结果为:
Test main()
wheel-1
wheel-2
wheel-3
car
例6-3:对象的初始化顺序问题
在main()方法中初始化Car类的对象时,
先初始化Car类的成员变量,(成员变量是wh对象则调用该对象相应的构造方法)。
而后再初始化Car类的对象, 即调用Car类的构造方法
class Wheel {
Wheel(String str) {
System.out.println(str);
} }
class Car {
Wheel wheel_1 = new Wheel (wheel-1);
Wheel wheel_2 = new Wheel (wheel-2);
Wheel wheel_3 = new Wheel (wheel-3);
Car(String str) {
System.out.println(str);
} }
阑虎茂呼引脏午士瞒便翘桃嘶赖掐五赔慎溪挥闰嘱萤钮济鄂悔做情匠亭今构造函数的执行机制构造函数的执行机制
7
例6-3:对象的初始化顺序
在创建对象时,对象所在类的所有数据成员会首先进行初始化
如果其中的成员变量有对象,那么它们也会按照顺序执行初始化工作。
在所有类成员初始化完成后,才调用对象所在类的构造方法创建对象。构造方法作用就是初始化。
在test类中创建car对象时,先
初始化“car”类的成员变量
成员变量wheel_1, wheel_1,
wheel_1等按顺序初始化
最后调用car类的构造函数
珐洋迫勘亦有赁扫慎装唤茸央约帖缓栅冗叼拿扭褒膛疑捣场婴审霉标末
您可能关注的文档
最近下载
- 中国颈动脉狭窄介入诊疗指导规范.pptx VIP
- 六年级下册语文课件- 第六单元 4 早春呈水部张十八员外 人教部编版 (共14张PPT).pptx VIP
- Unit 8 Colours(Wrap up and assessment) 表格式教案 译林版英语三年级下册.pdf
- 国际人才英语教程(中级)课后习题答案解析.pdf
- 独立基础土方开挖施工方案.pdf VIP
- 痛风与高尿酸血症的药物治疗.pdf VIP
- A319销钉工具查询举例.pdf VIP
- 酒厂安全生产风险分级管控和隐患排查治理双体系方案全套.docx VIP
- 美国杜邦VORASURF™ DC 193 Additive MSDS英文报告.pdf
- 全回转施工简述--宜春推介会.ppt
文档评论(0)