java類創建時里面成員執行的先后順序


 

靜態代碼塊在類第一次使用的時候執行一次,在構造函數執行之前執行。只要用到類,哪怕new對象(比如只聲明變量)也會被執行,且只執行一次。一般用於對類進行初始化。

 

先執行靜態代碼塊,靜態成員(誰在前就先執行誰)。無論new幾次 靜態代碼塊和靜態成員只執行一次

再執行成員變量,最后構造函數。new幾次 成員變量和構造函數 執行幾次。

代碼:

1.聲明StaitcBlock類

public class StaticBlock1 {
    private static String TAG="333";

    //成員變量
    private  int age1=setAge();

    //構造函數
    public  StaticBlock1(){
        Log.e(TAG, "構造函數");
    }

    //靜態代碼塊
    static{
        Log.e(TAG, "靜態代碼塊 " );
    }

    //靜態成員
    private static int age2=setAge2();


    public static void main(String[] args) {
        StaticBlock1 b1=new StaticBlock1();

        StaticBlock1 b2=new StaticBlock1();
    }



    private int setAge(){
        Log.e(TAG, "getAge1: 方法1" );
        return 3;
    }

    private static int setAge2(){
        Log.e(TAG, "getAge2: 方法2" );

        return 333;
    }

}

2.在Activity中創建StaticBoloc類

 Log.e(TAG, "onCreate: ------------------------開始" );
        StaticBlock1 b1=new StaticBlock1();
        Log.e(TAG, "----------------------------------------------------------------------------------" );
        StaticBlock1 b2=new StaticBlock1();

 

3.結果

 


免責聲明!

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



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