最后一句hello2為什么還會(huì)輸出兩行
helloWorld hello2=new HelloWorld()這句話有什么用,為什么還會(huì)輸出“通過(guò)初始化為變量num2賦值”和“通過(guò)構(gòu)造方法為變量num1賦值”
helloWorld hello2=new HelloWorld()這句話有什么用,為什么還會(huì)輸出“通過(guò)初始化為變量num2賦值”和“通過(guò)構(gòu)造方法為變量num1賦值”
2018-01-20
舉報(bào)
2018-04-16
新創(chuàng)建一個(gè)類的對(duì)象,類中的代碼塊和方法都會(huì)被執(zhí)行,但靜態(tài)塊只執(zhí)行一次,所以hello2里面只輸出2個(gè)。
2018-01-20
helloWorld hello2=new HelloWorld()這句話就是創(chuàng)建了類HelloWorld的一個(gè)對(duì)象hello2。普通來(lái)說(shuō),每一次創(chuàng)建類的一個(gè)對(duì)象,類中的代碼塊和方法都會(huì)被調(diào)用一次,HelloWorld中有三個(gè)初始化代碼塊,普通情況下在創(chuàng)建對(duì)象hello2時(shí)三種應(yīng)該都調(diào)用一次,但是有一個(gè)是靜態(tài)的初始代碼塊,這個(gè)代碼塊在之前創(chuàng)建對(duì)象hello的時(shí)候已經(jīng)分配了空間,也就是已經(jīng)實(shí)例化了。所以在創(chuàng)建對(duì)象hello2的時(shí)候沒(méi)有再執(zhí)行這個(gè)靜態(tài)代碼塊。所以只輸出了兩行“通過(guò)初始化為變量num2賦值”和“通過(guò)構(gòu)造方法為變量num1賦值”。