码迷,mamicode.com
首页 > 编程语言 > 详细

java中一个对象的初始化过程

时间:2017-12-08 18:31:15      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:int   test   main   div   sys   静态代码块   object   构造方法   new   

// 对象初始化的过程

class Fu {
    
    int num=55;//  1, num=0;对象中的成员变量默认初始化。5, 显示初始化 num=55
    {
        System.out.println("FU类构造代码块");// 6, 构造代码块初始化 
    }

    Fu() {  // 3 FU类构造函函数初始化

        super(); // 4 object构造函函数初始化
        // 5 显示初始化,初始化成员变量
        // 6 构造代码块初始化类
        System.out.println("FU构造函数"+num);// 7 ,num=55;

        show();// 8,被覆盖运行子类
    }

    void show() {

        System.out.println("FU SHOW ");
    }
    static {    // -1,静态代码块随类的加载而加载,且只执行一次    先加载FU                    
        System.out.println("static FU");
    }


}
class Zi extends Fu {

    

    int num=5;  // 1, num=0;对象中的成员变量默认初始化. 10, 显示初始化 num=5
    // 构造代码块
    {
        System.out.println("zi构造代码块  " +num); // 11 构造代码块初始化 num=5
    }
    // 构造函数
    Zi() {   //  2, 构造函数初始化

        super(); //3 ,
        // 10, 显示初始化,初始化成员变量
        // 11 构造代码块初始化类

         System.out.println("zi构造函数"+num); // 12,num=5;
     }

    void show() {  //  8

        System.out.println("ZI SHOW "+num); // 9,num=0;
    }
    static {        // 0, 再加载ZI
        System.out.println("static ZI"); 
    }
}

class TestDemo {

    public static void main(String[] args) {
        // 对象初始化的过程
        new Zi();
    }
}

// // 结果为:  static FU
//       static ZI
//       FU类构造代码块
//       FU构造函数55
//       ZI SHOW 0
//       zi构造代码块5
//       zi构造函数5

// 总结:静态代码块=>非静态代码块=>构造方法

// 父子关系:父类静态代码块=>子类静态代码块=>父类非静态代码块=>父类构造函数=>子类非静态代码块=>子类构造函数

java中一个对象的初始化过程

标签:int   test   main   div   sys   静态代码块   object   构造方法   new   

原文地址:http://www.cnblogs.com/bigben223/p/8006339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!