黑马程序员----对象的初始化过程
2014-03-07 17:10
246 查看
这一new Zi();呀就开始了!
一,先初始化成员变量 int num = 0 ;
二,先初始化构造函数Zi(){ }!
三,接下来走super(); 即父类的构造函数Fu(){ }
四, Fu(){ }里面有一方法show(),已经被子类覆盖了,所以调用子类show() ;方法。
五,显示初始化(自己理解就是对成员变量初始化赋值了)即int num = 9;
六,构造代码块初始化 (执行完自己的语句,int num =10;)
七,才运行Zi(){ }构造函数中的语句!
/* 练习: 对象初始化过程 练习方法: 使用到继承、构造函数、构造代码块、函数覆盖。 需求: 要求熟悉整个运行流程,编写完代码后分析打印结果。 */ class Fu { int num = 5; { System.out.println(" Fu constructor code..."+num); num = 25; } Fu() { //super(); //显示初始化 num = 5; //构造代码块 System.out.println(" Fu constructor ..."+num); show(); } void show () { System.out.println(" show ..."+num); } } class Zi extends Fu { int num = 10; { System.out.println("Zi constructor code..."+num); num = 15; } Zi() { //super(); //显示初始化 //构造代码块 System.out.println("Zi constructor ....."+num); } void show() { System.out.println(" show ..."+num); } } class InitDemo { public static void main(String[] args) { //System.out.println("Hello World!"); new Zi(); } } /* 结果分析: new Zi();执行! 一,Zi 类中的成员变量 num = 0;(初始化进堆) 二,开始执行构造函数Zi(){ } 三,super();直接跳转到 父类的构造函数:Fu(){} 四,Fu(){ }构造函数中的super();跳转到Object(){ } 五,显示初始化,Fu类中的num = 5; 六,接着执行Fu类中的构造代码块 System.out.println(" Fu constructor code..."+5); num = 25; 七,返回继续Fu(){} 中的语句 System.out.println(" Fu constructor ..."+25); show(); 八,show 方法被Zi类覆盖,因Zi类中的num还没有显示初始化,所以num = 0; System.out.println(" show ..."+0); 九,到这里Fu(){ }就初始化完了,返回Zi(){ },显示初始化 num = 10; 十,执行Zi构造代码块 System.out.println("Zi constructor code..."+10); num = 15; 十一,再执行接下来的语句 System.out.println("Zi constructor ....."+15); */ //所以运行结果: /* Fu constructor code...5 Fu constructor ...25 show ...0 Zi constructor code...10 Zi constructor .....15 */
相关文章推荐
- 黑马程序员_对象的初始化过程
- 黑马程序员_day06 面向对象(静态,对象的初始化和对象调用成员过程,单例设计模式)
- 黑马程序员------毕老师视频笔记第六天------面向对象(对象初始化过程)
- 黑马程序员:Java对象的初始化过程
- 黑马程序员--03.Java面向对象--05.子类对象初始化的过程【个人总结】
- 黑马程序员——java第六天:面向对象(静态、帮助文档、对象初始化过程、单例)
- 黑马程序员--面向对象(二)static关键字、静态代码块、对象的初始化过程
- 黑马程序员------面向对象(No.4)(对象初始化过程、单例、继承概述、重写)
- 黑马程序员-面向对象-06天-4(对象初始化过程)
- 黑马程序员-对象的初始化过程
- 黑马程序员--java中父类和子类都有构造方法时,子类对象的初始化过程
- 黑马程序员--03.Java面向对象--04.【对象初始化的过程】【对象调用成员的过程】
- 黑马程序员_对象初始化过程
- 黑马程序员-对象的初始化过程
- 黑马程序员_Java基础_面向对象(Static的使用、对象初始化和调用成员过程、单例设计模式)
- 黑马程序员-对象的初始化过程详解
- 黑马程序员------OC 面向对象和面向过程思想(基础)
- 制作程序文档_主函数_静态代码块_对象的初始化过程_对象调用成员过程
- 初始化Java对象的详细过程
- 图解Java对象初始化过程以及方法调用