黑马程序员——Java中对象初始化的顺序与原理 总结
来源:互联网 发布:青岛seo排名工具 编辑:程序博客网 时间:2024/06/05 02:49
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
顺序:
(有子父类继承关系的情况下)
成员变量默认初始化--->父类构造器初始化--->成员变量显示初始化--->子类构造代码块初始化---->子类构造器初始化
源代码:
Fu(){System.out.println("fu....run");show();}void show(){System.out.println("最上面的show()");}}class Zi extends Fu{int num=9;//子类构造代码块{System.out.println("子代码快"+num);//在子类代码块中为成员变量赋值为10num=10;}//子类构造器Zi(){super();//隐式语句,指向父类System.out.println("子类构造器中的"+num);}void show(){System.out.println("最下下面的show()"+num);}}class ChushiDemo{public static void main(String[]args){new Zi();}}
输出结果为:
---------- java -----fu....run最下下面的show()0子代码快9子类构造器中的10---------- java -----明确对象初始化的顺序与原理:
情况一:
[有继承关系情况下]
new对象,即刻成员变量默认(隐式)初始化
(num被系统赋予0),然后,父类构造器初始化,再然后调用show()
方法,此刻父类构造器完成;然后成员变量显示初始化(num被赋予9);
再然后,构造代码块初始化,再然后子类构造器完成初始化.
情况二:
[无继承关系情况下]
new对象,即刻成员变量默认(隐式)初始化
(num被系统赋予0),然后成员变量显示初始化(num被赋予9);再然后
构造代码初始化,再然后,构造器初始化.
以上两种情况区别就在于: super();语句.
0 0
- 黑马程序员——Java中对象初始化的顺序与原理 总结
- 黑马程序员—Java类与对象的初始化
- 黑马程序员——初始化的顺序
- 黑马程序员-java基础-继承中类的初始化顺序
- Java基础总结之类与对象的初始化顺序
- JAVA中子类与父类对象的初始化顺序
- 黑马程序员:Java对象的初始化过程
- 黑马程序员——类与对象的总结
- 黑马程序员——面向对象4:对象的初始化
- 黑马程序员——java基础---对象初始化
- 黑马程序员--03.Java面向对象--05.子类对象初始化的过程【个人总结】
- java类与对象的初始化顺序
- Java类与对象的初始化顺序
- Java中对象的初始化顺序
- 黑马程序员-----Java中类的初始化
- 黑马程序员+Java中IO流对象的总结
- 黑马程序员+对Java中面向对象的总结
- 黑马程序员-Java中比较实用的对象总结
- HDU ACM 1071 The area 定积分计算
- 三招美化简历上的职业空白期
- EPEL安装源
- Android针对http请求的第三方开源框架AsynHttpClient
- 前端性能优化之js,css调用优化
- 黑马程序员——Java中对象初始化的顺序与原理 总结
- poj 3279 Fliptile 再关灯
- java io 详解
- DDMS 中不出现Genymotion模拟器
- Android应用测试总结
- IOS开发之AVPlayer(可定制播放器)
- USB无线网卡应用
- 浅谈那些年黑客们犯下的错误(其一)
- eclipse调优