第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Java中類初始化代碼塊和父類構(gòu)造器執(zhí)行順序問題,

Java中類初始化代碼塊和父類構(gòu)造器執(zhí)行順序問題,

qq_遁去的一_1 2019-03-14 14:15:32
麻煩先看代碼主要內(nèi)容是關(guān)于靜態(tài)初始化和構(gòu)造器的執(zhí)行順序的問題class Root{    static    {        System.out.println("Root的靜態(tài)初始化代碼塊");    }    {        System.out.println("Root的普通初始化代碼塊");    }    public Root()    {        System.out.println("Root的無參數(shù)的構(gòu)造器");    }}class Mid extends Root{    static    {        System.out.println("Mid的靜態(tài)初始化代碼塊");    }    {        System.out.println("Mid的普通初始化代碼塊");    }    public Mid()    {        System.out.println("Mid的無參數(shù)構(gòu)造器");    }    public Mid(String msg)    {        //通過this調(diào)用同一類中的重載構(gòu)造器        //this();        System.out.println("Mid的帶參數(shù)構(gòu)造器,其參數(shù)值為:" +                msg );    }}class Leaf extends Mid{    static    {        System.out.println("Leaf的靜態(tài)初始化代碼塊");    }    {        System.out.println("Leaf的普通初始化代碼塊");    }    public Leaf()    {        //通過super調(diào)用父類中有一個(gè)字符串參數(shù)的構(gòu)造器        super("急速測試");        System.out.println("執(zhí)行Leaf的構(gòu)造器");    }}public class Test {    public static void main(String [] args)    {        System.out.println("test");        new Leaf();        new Leaf();    }}代碼輸出如下testRoot的靜態(tài)初始化代碼塊Mid的靜態(tài)初始化代碼塊Leaf的靜態(tài)初始化代碼塊Root的普通初始化代碼塊Root的無參數(shù)的構(gòu)造器Mid的普通初始化代碼塊Mid的帶參數(shù)構(gòu)造器,其參數(shù)值為:急速測試Leaf的普通初始化代碼塊執(zhí)行Leaf的構(gòu)造器Root的普通初始化代碼塊Root的無參數(shù)的構(gòu)造器Mid的普通初始化代碼塊Mid的帶參數(shù)構(gòu)造器,其參數(shù)值為:急速測試Leaf的普通初始化代碼塊執(zhí)行Leaf的構(gòu)造器問題1(此問題已經(jīng)解決,謝謝)我粗略了解載入Leaf類的時(shí)候,會(huì)先創(chuàng)建父類(直至java.lang.Object)的初始化代碼和構(gòu)造器,那么他們的順序是否如下:Root類靜態(tài)初始化代碼塊-->Mid類靜態(tài)初始化代碼塊-->Leaf類靜態(tài)初始化代碼塊-->Root類普通初始化代碼塊-->Root類構(gòu)造器-->...-->Leaf類Root類普通初始化代碼塊-->Leaf類的構(gòu)造器問題2如果Leaf類的構(gòu)造器的執(zhí)行順序在父類的構(gòu)造器之后,那么為什么Mid類的有參數(shù)構(gòu)造器已經(jīng)被傳入?yún)?shù)急速測試呢?可能描述得不是很清楚,如果有疑問請指出來,我會(huì)盡量描述清楚的感謝您抽空查看
查看完整描述

2 回答

?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

找了半天也沒找到block的執(zhí)行時(shí)間,后來使用javap -c查看class文件發(fā)現(xiàn)block被扔到構(gòu)造器里面了,并且invokespecial superclass的<init>方法也在里面,不過在block前面,這就解釋了你的問題了。


查看完整回答
反對 回復(fù) 2019-04-25
  • 2 回答
  • 0 關(guān)注
  • 576 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號