Java 中的 static 使用之靜態初始化塊


Java 中可以通過初始化塊進行數據賦值。如:

在類的聲明中,可以包含多個初始化塊,當創建類的實例時,就會依次執行這些代碼塊。如果使用 static 修飾初始化塊,就稱為靜態初始化塊。

需要特別注意:靜態初始化塊只在類加載時執行,且只會執行一次,同時靜態初始化塊只能給靜態變量賦值,不能初始化普通的成員變量

我們來看一段代碼:

運行結果:

通過輸出結果,我們可以看到,程序運行時靜態初始化塊最先被執行,然后執行普通初始化塊,最后才執行構造方法。由於靜態初始化塊只在類加載時執行一次,所以當再次創建對象 hello2 時並未執行靜態初始化塊。

 

任務

小伙伴們,做個練習加深對靜態初始化塊的理解吧!

在編輯器中,分別通過構造方法、初始化塊和靜態初始化塊對變量進行初始化賦值。

將第 8、20、34 行中代碼補充完整

參考運行結果:

 

public class HelloWorld {
    
    String name; // 聲明變量name
    String sex; // 聲明變量sex
    static int age;// 聲明靜態變量age
    
    // 構造方法
    public   HelloWorld() { 
        System.out.println("通過構造方法初始化name");
        name = "tom";
    }
    
    // 初始化塊
    { 
        System.out.println("通過初始化塊初始化sex");
        sex = "男";
    }
    
    // 靜態初始化塊
    static  { 
        System.out.println("通過靜態初始化塊初始化age");
        age = 20;
    }
    
    public void show() {
        System.out.println("姓名:" + name + ",性別:" + sex + ",年齡:" + age);
    }
    
    public static void main(String[] args) {
        
        // 創建對象
        HelloWorld hello = new HelloWorld();
        // 調用對象的show方法
        hello.show();
        
    }
}

 


免責聲明!

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



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