使用初始好塊(P160)

 public class Person{java

  {ide

   int a =6;對象

   if(a>4){內存

    System.out.println("Person的初始化塊局部變量a的值大於4");     it

   }class

   System.out.println("Person的初始化塊");變量

 }程序

   public Person(){總結

   System.out.println("Person類的無參數構造器");static

  }

  public static void main(String[] args){

   new Person(); 

  }

}

程序輸出:

   Person的初始化塊:局部變量a的值大於4

   Person初始化塊

   Person類的無參數構造器

從運行結果能夠看出,當建立java對象時,系統老是先調用該類裏定義的初始化塊。

初始化塊沒有名字,也沒有標識,不能經過對象或者類來調用。初始化塊只在建立java對象時隱式執行,並且在執行構造器以前執行。

 

public class Test{

  {

   a=6; 

 }

   int a =9;

}

  public static void main(String[] args){

  System.out.println(new Test().a);//這行代碼輸出爲9;

}

 總結:當java建立一個對象時,系統先爲該對象的全部實例屬性分配內存(前提是該類已經被加載過了),接着程序開始對這些實例屬性執行初始化。其初始化順序是:先執行初始化塊或聲明屬性時指定的初始值,而後再執行構造器裏指定的值。

相關文章
相關標籤/搜索