靜態初始化器


1、靜態初始化器是由static修飾的一對花括號“{}”括起來的語句組。它的作用和構造方法有待你相似,都是用來完成初始化工作的,但是靜態初始化器與構造方法有以下幾點根本不同。

  a、構造方法是對每一個新創建的對象初始化,而靜態方法是對類自身進行初始化。

  b、構造方法是在new運算符創建新對象的時候由系統執行,而靜態初始化器一般不能由程序調用,它是在所屬類被加載入內存時由系統調用執行的。

  c、用new運算符創建多少個新的對象,構造方法就被調用那個多少次,但是靜態初始化器則是在被類加載入內存時只執行一次,與創建多少個對象無關。

 

2、如果有多個靜態初始化器,則它們在類的初始化時會依次執行。

 

3、類是在第一次被使用的時候才被裝載,而不是在程序啟動時就裝載程序中得所有可能用到的類。

 

4、靜態初始化器的作用是對整個類完成初始化操作,包括給static成員變量賦初值,它在系統向內存加載時自動完成。

 

5、例子

 

public class HelloB extends HelloA{

public HelloB()

{

 

}

{

System.out.print("I'm B class");

}

static

{

System.out.print("Static B");

}

public static void main(String[] args)

{

new HelloB();

}

}

class HelloA

{

/**

* 構造方法,可以用來初始化該類的實例屬性,也可以初始化類對象

*/

public HelloA()

{

 

}

/**

* 初始化塊,只能用於初始化該類的屬性

*/

{

System.out.print("I'm A class");

}

/**

* 靜態初始化器,對整個類就完成初始化操作,包括給成員變量賦值

*/

static   

{

System.out.print("Static A");

}

 

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM