Java類初始化順序說明

2021-09-24 22:31:19 字數 1245 閱讀 9251

乙個類中包含如下幾類東西,他們前後是有順序關係的

靜態屬性:static 開頭定義的屬性

靜態方法塊: static {} 圈起來的方法塊

普通屬性: 未帶static定義的屬性

普通方法塊: {} 圈起來的方法塊

建構函式: 類名相同的方法

方法: 普通方法

public class lifecycle 

// 普通屬性

private string field = getfield();

// 普通方法塊

// 建構函式

public lifecycle()

public static string getstaticfield()

public static string getfield()

// 主函式

public static void main(string argc)

}

執行結果:

靜態屬性初始化

static field initial

靜態方法塊初始化

static patch initial

普通屬性初始化

field initial

普通方法塊初始化

field patch initial

建構函式初始化

structure initial

普通類:

靜態變數

靜態**塊

普通變數

普通**塊

建構函式

繼承的子類:

父類靜態變數

父類靜態**塊

子類靜態變數

子類靜態**塊

父類普通變數

父類普通**塊

父類建構函式

子類普通變數

子類普通**塊

子類建構函式

抽象的實現子類: 介面 - 抽線類 - 實現類

介面靜態變數

抽象類靜態變數

抽象類靜態**塊

實現類靜態變數

實習類靜態**塊

抽象類普通變數

抽象類普通**塊

抽象類建構函式

實現類普通變數

實現類普通**塊

實現類建構函式

介面注意:

Java類初始化順序說明

乙個類中包含如下幾類東西,他們前後是有順序關係的 初始化順序 public class lifecycle 普通屬性 private string field getfield 普通方法塊 建構函式 public lifecycle public static string getstaticfie...

Java類初始化順序

類的初始化順序 首先執行父類靜態的內容,父類靜態的內容執行完畢後,接著去執行子類的靜態的內容,當子類的靜態內容執行完畢之後,再去看父類有沒有非靜態 塊,如果有就執行父類的非靜態 塊,父類的非靜態 塊執行完畢,接著執行父類的構造方法 父類的構造方法執行完畢之後,它接著去看子類有沒有非靜態 塊,如果有就...

java類初始化順序

我們大家都知道,對於靜態變數 靜態初始化塊 變數 初始化塊 構造器,它們的初始化順序依次是 靜態變數 靜態初始化塊 變數 初始化塊 構造器。我們也可以通過下面的測試 來驗證這一點 public class initialordertest 初始化塊 構造器 public initialorderte...