變數初始化順序

2021-09-02 16:11:10 字數 822 閱讀 8276

(1)變數定義的先後順序決定初始化順序,即使變數定義散布在方法定義之間,他們仍舊會在方法被呼叫之前得到初始化,構造方法也是特殊的方法

(2)執行順序:靜態塊, 靜態變數,非靜態變數,構造方法

每次在建立物件的時候非靜態變數都會被初始化

靜態物件只會在類載入的時候被初始化一次

public class initialization 

}class bowl

public void method(int maker)

}class table

public void method(int maker)

static bowl bowl2 = new bowl(2);

}class cupboard

public void method(int maker)

static bowl bowl5 = new bowl(5);

}

結果:

bowl 1

bowl 2

table 

bowl method 2

bowl 4

bowl 5

bowl 3

cupboard 

bowl method 2

start...

bowl 3

cupboard 

bowl method 2

restart...

bowl 3

cupboard 

bowl method 2

table method 1

cupboard method 1

Java 變數初始化順序

tij 第四版在 初始化順序 部分講到,變數定義的先後順序決定了初始化的順序 我認為這句話是不準確的,當然也可能是翻譯者的問題。因為實際上,變數定義的先後順序與初始化順序無關。class cup public class cups cups public static void main strin...

繼承變數初始化順序

這個東西,我總是記不住,每次都會再去test一下,這次先把這次test記錄在這裡。順序 父類定義時的賦值 父類建構函式 子類建構函式。父類 public class testextendsparent protected long outlet id protected string str1 11...

java變數初始化順序

子類 son 父類father。1.先初始化父類的靜態變數或靜態 塊。不分先後,以定義的先後順序為準 2.初始化子類的靜態變數或靜態 塊 3.初始化父類的非靜態變數,執行建構函式 4.初始化子類的非靜態變數,執行建構函式。比如 father fa new son 向上轉型,不用強制型別轉換 fa 呼...