初始化塊,創(chuàng)建對(duì)象
在例題中,當(dāng)再次創(chuàng)建對(duì)象 hello2 時(shí)并未執(zhí)行靜態(tài)初始化塊,我想知道這僅僅是創(chuàng)建對(duì)象,并未調(diào)用啊,為什么普通初始化塊和構(gòu)造方法還要在執(zhí)行呢、?
在例題中,當(dāng)再次創(chuàng)建對(duì)象 hello2 時(shí)并未執(zhí)行靜態(tài)初始化塊,我想知道這僅僅是創(chuàng)建對(duì)象,并未調(diào)用啊,為什么普通初始化塊和構(gòu)造方法還要在執(zhí)行呢、?
2016-09-07
舉報(bào)
2016-09-07
創(chuàng)建一個(gè)對(duì)象的過程就包括了調(diào)用構(gòu)造方法
HelloWorld hello2 = new HelloWorld();
hello2是一個(gè)對(duì)象引用,是使用new操作符構(gòu)建的一個(gè)HelloWorld對(duì)象
類名HelloWorld后面是構(gòu)造函數(shù)的參數(shù)列表,顯然上面的構(gòu)造函數(shù)參數(shù)為空
初始化塊是在創(chuàng)建對(duì)象時(shí)對(duì)屬性初始化(有的話就調(diào)用),構(gòu)造方法是創(chuàng)建對(duì)象后對(duì)屬性初始化(規(guī)定,必須調(diào)用)
到這里就明白執(zhí)行順序是什么了吧
當(dāng)然是先執(zhí)行靜態(tài)代碼塊,接著執(zhí)行構(gòu)造方法
2016-09-07
new Hello()就是在調(diào)用 ?無參構(gòu)造器 ? ? ? ? ?類被加載的時(shí)候 ? 靜態(tài)代碼塊就會(huì)被執(zhí)行