靜態初始化器的定義(initializer)

靜態初始化器是由關鍵字static引導的一對大括號括起的語句組。作用是:在加載時,初始化類的靜態域。如有多個static{}程序段,則在類的初始化時,會依次執行。

  與構造函數相同,他們都是用來完成初始化的工作,但是靜態初始化器與構造函數有三點不同:

  ①構造函數是對每個新創建的對象初始化,而靜態初始化器是對類自身進行初始化。

  ②構造函數是在用new運算符產生新對象時由系統自動執行,而靜態初始化器則是在它所屬的類加載到內存時由系統調用執行。

  ③不同於構造函數,靜態初始化器不是方法,沒有方法名、返回值和參數列表。

優點:

       當類有一些靜態變量,同時不能用一行代碼解決初始化時,可以使用這個方法。而不是建一個initial方法,每次new的時候都調用一次。

 

代碼樣例:

class Person {

	private static final Date BOOM_START;

	static {
		Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
		gmtCal.set(1946, Calendar.JANUARY, 1, 0, 0, 0);
		BOOM_START = gmtCal.getTime();
	}

}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章