構造代碼塊:
在類中定義能夠給全部對象進行初始化。
局部代碼塊:
在方法中定義屬性的生命週期。
靜態代碼塊:
在類中定義用於給類調用時屬性的初始化函數
構造函數與構造代碼塊的區別:
構造函數是給對應的對象進行鍼對性的初始化。
構造代碼塊是給全部對象進行初始化spa
代碼以下:code
public class Demo { private static int age; private static String name; //靜態代碼塊:給類的屬性進行初始化 static{ age = 10; name = "旺財"; } //構造代碼塊:給全部的對象初始化定義在類中方法外。 { show(); } public Demo(int age,String name){//有參構造函數 Demo.age =age; Demo.name = name; } public Demo(){//無參構造函數 } public void show(){ //普通函數 //局部代碼塊:定義屬性的生命週期 { char sex = '男';//變量sex出了{}後就會被銷燬 System.out.println("sex="+sex); } Demo.name = "張三"; } public static void main(String[] args) { /*當有靜態代碼塊構造代碼塊構造函數時程序執行流程 * 1.類被調用或建立實例時會執行靜態代碼塊進行初始化執行後age=10 name=旺財。 * 2.建立實例會執行構造代碼塊調用show方法執行後sex = 男 ,age不變,name = 張三。 * 3.調用有參構造函數傳入參數執行後age = 50,name=姚明。 * 執行順序爲: * 一、靜態代碼塊 :給類的屬性進行初始化。 * 二、構造代碼塊:給全部的對象進行初始化。 * 三、有參或無慘構造(根據實例來定):給指定的對象進行初始化。 * 結果爲:sex=男 注意這個是在構造代碼塊中輸出的 * 50 姚明 * */ Demo d = new Demo(50,"姚明"); System.out.println(d.age+"\t"+d.name); } }