Java類成員變量、普通成員變量、初始化塊、構造方法的初始化和執行順序


結論:執行的大致順序如下,

  (1) 在一個不存在繼承的類中:初始化static變量,執行static初始化塊-->初始化普通成員變量(如果有賦值語句),執行普通初始化塊-->構造方法

  (2)在一個存在繼承的類中:初始化父類static成員變量,運行父類static初始化塊-->初始化子類static成員變量,運行子類static初始化塊-->初始化父類實例成員變量(如果有賦值語句),執行父類普通初始化塊-->父類構造方法-->初始化子類實例成員變量(如果有賦值語句)及普通初始化塊-->子類構造方法。

 測試代碼如下:(通過斷點查看代碼執行順序)

public class Student {
    public static int age=11;
    public static String name="lucky";
    public String address="天台";
    static {
        System.out.println("我是靜態代碼塊");
    }
    public Student(){
        System.out.println("我是構造函數");
    }
    public static void test(){
        System.out.println(name);
        System.out.println(age);
    }
}

public class Sequence {
    public static void main(String[] args) {
        //Student.test();
        Student student=new Student();
    }
}

 

轉自:https://blog.csdn.net/yuxin6866/article/details/52245765


免責聲明!

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



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