亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java類中元素初始化順序詳解

 更新時(shí)間:2013年08月29日 15:14:30   作者:  
對(duì)于靜態(tài)變量、靜態(tài)初始化塊、變量、初始化塊、構(gòu)造器,它們的初始化順序依次是(靜態(tài)變量、靜態(tài)初始化塊)>(變量、初始化塊)>構(gòu)造器

復(fù)制代碼 代碼如下:

public class Test4 {
    @Test
    public void test(){
        child child = new child();
    }
}

class parent{
    public static String parentStaticField = "父類靜態(tài)變量";
    public String parentNormalField ="父類普通變量";
    static {
        System.out.println(parentStaticField);
        System.out.println("父類靜態(tài)塊");
    }

    {
        System.out.println(parentNormalField);
        System.out.println("父類普通塊");
    }

    public parent(){

        System.out.println("父類構(gòu)造方法");
    }
}

class child extends parent{
    public static String childStaticField = "子類靜態(tài)變量";
    public String childNormalField ="子類普通變量";
    static {
        System.out.println(childStaticField);
        System.out.println("子類靜態(tài)塊");
    }

    {
        System.out.println(childNormalField);
        System.out.println("子類普通塊");
    }

    public child(){
        System.out.println("子類構(gòu)造方法");
    }
}


輸出:

復(fù)制代碼 代碼如下:

父類靜態(tài)變量
父類靜態(tài)塊
子類靜態(tài)變量
子類靜態(tài)塊
父類普通變量
父類普通塊
父類構(gòu)造方法
子類普通變量
子類普通塊
子類構(gòu)造方法

執(zhí)行過(guò)程:

1、當(dāng)執(zhí)行到new child時(shí),裝載器尋找已經(jīng)編譯的child類的代碼(也就是child.class文件)。在裝載的過(guò)程中,裝載器注意到它有一個(gè)基類,于是它再裝載基類。不管你創(chuàng)不創(chuàng)建基類對(duì)象,這個(gè)過(guò)程總會(huì)發(fā)生。如果基類還有基類,那么第二個(gè)基類也會(huì)被裝載,依此類推。

2、執(zhí)行根基類的static初始化,然后是下一個(gè)派生類的static初始化,依此類推。這個(gè)順序非常重要,因?yàn)榕缮惖摹皊tatic初始化”有可能要依賴基類成員的正確初始化。

3、當(dāng)所有必要的類都已經(jīng)裝載結(jié)束,創(chuàng)建child類對(duì)象。

4、child類存在父類,則調(diào)用父類的構(gòu)造函數(shù),可以使用super來(lái)指定調(diào)用哪個(gè)構(gòu)造函數(shù)。

  基類的構(gòu)造過(guò)程以及構(gòu)造順序,同派生類的相同。首先基類中各個(gè)變量按照字面順序進(jìn)行初始化,然后執(zhí)行基類的構(gòu)造函數(shù)的其余部分。

5、對(duì)子類成員數(shù)據(jù)按照它們聲明的順序初始化,執(zhí)行子類構(gòu)造函數(shù)的其余部分。

相關(guān)文章

最新評(píng)論