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