請選中您1 普通代碼塊 //普通代碼塊:在方法或語句中出現(xiàn)的{}就稱為普通代碼塊。普通代碼塊和一般的語句執(zhí)行順序由他們在代碼中出現(xiàn)的次序決定--“先出現(xiàn)先執(zhí)行” public class CodeBlock01{ public static void main(String[] args){ { int x=3; System.out.println("1,普通代碼塊內(nèi)的變量x="+x); } int x=1; System.out.println("主方法內(nèi)的變量x="+x); { int y=7; System.out.println("2,普通代碼塊內(nèi)的變量y="+y); } } } /* 運(yùn)行結(jié)果: 1,普通代碼塊內(nèi)的變量x=3 主方法內(nèi)的變量x=1 2,普通代碼塊內(nèi)的變量y=7 */ 2 構(gòu)造代碼塊 //構(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ù),。 public class CodeBlock02{ { System.out.println("第一代碼塊"); } public CodeBlock02(){ System.out.println("構(gòu)造方法"); } { System.out.println("第二構(gòu)造塊"); } public static void main(String[] args){ new CodeBlock02(); new CodeBlock02(); new CodeBlock02(); } } /* * 執(zhí)行結(jié)果: 第一代碼塊 第二構(gòu)造塊 構(gòu)造方法 第一代碼塊 第二構(gòu)造塊 構(gòu)造方法 第一代碼塊 第二構(gòu)造塊 構(gòu)造方法 */ 3 靜態(tài)代碼塊 //靜態(tài)代碼塊:在java中使用static關(guān)鍵字聲明的代碼塊,。靜態(tài)塊用于初始化類,為類的屬性初始化,。每個靜態(tài)代碼塊只會執(zhí)行一次,。由于JVM在加載類時(shí)會執(zhí)行靜態(tài)代碼塊,所以靜態(tài)代碼塊先于主方法執(zhí)行,。 //如果類中包含多個靜態(tài)代碼塊,,那么將按照"先定義的代碼先執(zhí)行,后定義的代碼后執(zhí)行",。 //注意:1 靜態(tài)代碼塊不能存在于任何方法體內(nèi),。2 靜態(tài)代碼塊不能直接訪問靜態(tài)實(shí)例變量和實(shí)例方法,需要通過類的實(shí)例對象來訪問,。 class Code{ { System.out.println("Code的構(gòu)造塊"); } static{ System.out.println("Code的靜態(tài)代碼塊"); } public Code(){ System.out.println("Code的構(gòu)造方法"); } } public class CodeBlock03{ { System.out.println("CodeBlock03的構(gòu)造塊"); } static{ System.out.println("CodeBlock03的靜態(tài)代碼塊"); } public CodeBlock03(){ System.out.println("CodeBlock03的構(gòu)造方法"); } public static void main(String[] args){ System.out.println("CodeBlock03的主方法"); new Code(); new Code(); new CodeBlock03(); new CodeBlock03(); } } /* CodeBlock03的靜態(tài)代碼塊 CodeBlock03的主方法 Code的靜態(tài)代碼塊 Code的構(gòu)造塊 Code的構(gòu)造方法 Code的構(gòu)造塊 Code的構(gòu)造方法 CodeBlock03的構(gòu)造塊 CodeBlock03的構(gòu)造方法 CodeBlock03的構(gòu)造塊 CodeBlock03的構(gòu)造方法 */ 要保存的內(nèi)容,,粘貼到此文本框 |
|