java普通代碼塊 Java中,構(gòu)造代碼塊和構(gòu)造函數(shù)有什么區(qū)別?
Java中,構(gòu)造代碼塊和構(gòu)造函數(shù)有什么區(qū)別?構(gòu)造代碼塊:直接在類中定義且沒有加static關(guān)鍵字的代碼塊稱為{}構(gòu)造代碼塊。構(gòu)造代碼塊在創(chuàng)建對象時(shí)被調(diào)用,每次創(chuàng)建對象都會被調(diào)用,并且構(gòu)造代碼塊的執(zhí)行次
Java中,構(gòu)造代碼塊和構(gòu)造函數(shù)有什么區(qū)別?
構(gòu)造代碼塊:直接在類中定義且沒有加static關(guān)鍵字的代碼塊稱為{}構(gòu)造代碼塊。構(gòu)造代碼塊在創(chuàng)建對象時(shí)被調(diào)用,每次創(chuàng)建對象都會被調(diào)用,并且構(gòu)造代碼塊的執(zhí)行次序優(yōu)先于類構(gòu)造函數(shù)。
構(gòu)造函數(shù):用于給對象進(jìn)行初始化,是給與之對應(yīng)的對象進(jìn)行初始化,它具有針對性,函數(shù)中的一種。
特點(diǎn):
1:該函數(shù)的名稱和所在類的名稱相同。
2:不需要定義返回值類型。
3:該函數(shù)沒有具體的返回值。
底層分析:通過反編譯可以看到,構(gòu)造代碼塊中的代碼也是在構(gòu)造方法中執(zhí)行的。在編譯時(shí)的編譯器看來會默認(rèn)將構(gòu)造代碼塊中的代碼移動到構(gòu)造方法中,并且移動到構(gòu)造方法內(nèi)容的前面。
java中詳解靜態(tài)代碼塊,構(gòu)造代碼塊,構(gòu)造方法。求簡單易懂的解釋?
靜態(tài)代碼塊:只要一用到某個(gè)類,那么這個(gè)類的靜態(tài)代碼塊就先執(zhí)行,比如:當(dāng)你new 一個(gè)Dog()對象時(shí),首先i= 1 會執(zhí)行,然后才執(zhí)行 public Dog(){}這個(gè)方法。 pulic Dog() 是與類同名、沒有返回值的方法,也就是構(gòu)造方法。構(gòu)造方法的作用是用來初始化一個(gè)對象的。比如你可以在里面寫 i = 2那么當(dāng)你 Dog d = new Dog()執(zhí)行這段代碼的時(shí)候,是這樣的:首先 i = 0 然后執(zhí)行static 靜態(tài)代碼塊,此時(shí)i= 1最后執(zhí)行public Dog() i = 2