//構造塊:直接在類中定義且沒有加static關鍵字的代碼塊稱為{}構造代碼塊。構造代碼塊在創(chuàng)建對象時被調(diào)用,每次創(chuàng)建對象都會被調(diào)用,并且構造代碼塊的執(zhí)行次序優(yōu)先于類構造函數(shù)。\x0d\x0a\x0d\x0apublic class CodeBlock02\x0d\x0a{\x0d\x0a\x0d\x0a {\x0d\x0a\x0d\x0a System.out.println("第一代碼塊");\x0d\x0a \x0d\x0a }\x0d\x0a\x0d\x0apublic CodeBlock02(){\x0d\x0a System.out.println("構造方法");\x0d\x0a }\x0d\x0a \x0d\x0a {\x0d\x0a\x0d\x0a System.out.println("第二構造塊");\x0d\x0a }\x0d\x0a public static void main(String[] args){\x0d\x0a new CodeBlock02();\x0d\x0a new CodeBlock02();\x0d\x0a new CodeBlock02();\x0d\x0a \x0d\x0a }\x0d\x0a} \x0d\x0a\x0d\x0a/**\x0d\x0a執(zhí)行結果:\x0d\x0a第一代碼塊\x0d\x0a第二構造塊\x0d\x0a構造方法\x0d\x0a第一代碼塊\x0d\x0a第二構造塊\x0d\x0a構造方法\x0d\x0a第一代碼塊\x0d\x0a第二構造塊\x0d\x0a構造方法*/
專注于為中小企業(yè)提供做網(wǎng)站、成都做網(wǎng)站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)惠濟免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
構造代碼塊:是給所有的對象進行初始化,也就是說,所有的對象都會調(diào)用一個代碼塊,只要對象一建立,就會調(diào)用這個代碼塊。
構造函數(shù):是給與之對應的對象進行初始化,它具有針對性。
構造函數(shù):執(zhí)行時間比構造代碼塊時間晚,也是在對象初始化的時候運行。沒有返回值,構造函數(shù)名稱和類名一致。
構造代碼塊:執(zhí)行時間比靜態(tài)代碼塊晚,比構造函數(shù)早,和構造函數(shù)一樣,只在對象初始化的時候運行。沒有名字、參數(shù)和返回值。
靜態(tài)代碼塊:最早執(zhí)行,類被載入內(nèi)存時執(zhí)行,只執(zhí)行一次。沒有名字、參數(shù)和返回值,有關鍵字static。
靜態(tài)代碼塊只會在類被載入內(nèi)存時加載一次,是最先執(zhí)行的,然后是構造代碼塊,最后才是構造函數(shù)。構造代碼塊和構造函數(shù)都是在對象創(chuàng)建的時候執(zhí)行,有幾個對象就會執(zhí)行幾次。
靜態(tài)代碼塊:只要一用到某個類,那么這個類的靜態(tài)代碼塊就先執(zhí)行,比如:
public class Dog(){
int i = 0;
static {
i = 1;
}
public Dog(){
i = 2;
}
}當你new 一個Dog()對象時,首先i=
1 會執(zhí)行,然后才執(zhí)行
public Dog(){}這個方法。
pulic
Dog() 是與類同名、沒有返回值的方法,也就是構造方法。
構造方法的作用是用來初始化一個對象的。比如你可以在里面寫
i
=
2;
那么當你 Dog
d
=
new
Dog()執(zhí)行這段代碼的時候,是這樣的:
首先
i
=
;
然后執(zhí)行static 靜態(tài)代碼塊,此時i=
1;
最后執(zhí)行public
Dog();
i
=
2;