java變數初始化順序

2021-08-10 09:13:42 字數 501 閱讀 5255

在類的內部,變數定義的先後順序決定了初始化順序,即使變數定義分散在方法定義之外,它們依舊會在任何方法(包括構造器)被呼叫之前得到初始化

其中初始化的順序先是靜態物件,其後是非靜態物件

例如:

class cat

}class dog

}public class teststatic

}

執行結果:

test...

dog(2)

dog(1)

第1只貓

cat類和dog類構造器中列印資訊為了看初始化資訊

在main方法中,建立了乙個cat類,除構造方法外,有兩個物件,乙個是靜態dog,另外乙個是dog,因為靜態物件有先初始化,所以先列印出dog(2),其後才是dog(1)

最後才呼叫cat的構造方法,列印出cat(1)

非靜態例項初始化

{}裡初始化的內容在構造器之前執行,且每次生成該類{}將會重新被初始化

Java 變數初始化順序

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

java變數初始化順序

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

java變數初始化順序

1.變數初始化順序 靜態變數 靜態初始化塊 變數 變數初始化塊 構造器 public class initializationtest 初始化塊 構造器 public initializationtest public static void main string args 列印結果 靜態變數靜態...