JAVA物件的初始化順序
JAVA物件初始化順序,實驗程式碼如下:
執行結果如下:
Base 靜態成員I
Base 靜態成員J
Base 靜態成員K
Base 靜態初始化塊
Derived 靜態成員I
Derived 靜態初始化塊
Base 資料成員i
Base 匿名初始化塊
Base 建構函式
Derived 資料成員i
Derived 匿名初始化塊
Derived 建構函式
其中Base是父類,Derived是子類,根據以上實驗結果得出JAVA初始化的順序
類裝載階段
1.父類靜態成員
2.父類靜態初始化塊
3.子類靜態成員
4.子類靜態初始化塊
物件階段
5.父類資料成員
6.父類匿名初始化塊
7.父類建構函式
8.子類資料成員
9.子類匿名初始化塊
10.子類建構函式
-
class Base
-
{
-
private int i=Test.print("Base 資料成員i");
-
private static int I=Test.print("Base 靜態成員I");
-
private static int J=Test.print("Base 靜態成員J");
-
private static int K=Test.print("Base 靜態成員K");
-
//靜態初始化塊
-
static {
-
System.out.println("Base 靜態初始化塊");
-
}
-
//匿名初始化塊
-
{
-
System.out.println("Base 匿名初始化塊");
-
}
-
public Base(){
-
System.out.println("Base 建構函式");
-
}
-
}
-
-
class Derived extends Base{
-
private int i=Test.print("Derived 資料成員i");;
-
private static int I=Test.print("Derived 靜態成員I");;
-
//靜態初始化塊
-
static {
-
System.out.println("Derived 靜態初始化塊");
-
}
-
//匿名初始化塊
-
{
-
System.out.println("Derived 匿名初始化塊");
-
}
-
-
public Derived(){
-
System.out.println("Derived 建構函式");
-
}
-
-
}
-
-
public class Test{
-
public static int print(String string) {
-
System.out.println(string);
-
return 0;
-
}
-
public static void main(String[] args) {
-
Base b=new Derived();
-
}
- }
執行結果如下:
Base 靜態成員I
Base 靜態成員J
Base 靜態成員K
Base 靜態初始化塊
Derived 靜態成員I
Derived 靜態初始化塊
Base 資料成員i
Base 匿名初始化塊
Base 建構函式
Derived 資料成員i
Derived 匿名初始化塊
Derived 建構函式
類裝載階段
1.父類靜態成員
2.父類靜態初始化塊
3.子類靜態成員
4.子類靜態初始化塊
物件階段
5.父類資料成員
6.父類匿名初始化塊
7.父類建構函式
8.子類資料成員
9.子類匿名初始化塊
10.子類建構函式
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1063745/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java初始化順序Java
- c#物件初始化順序C#物件
- java類初始化的順序Java
- 程式碼說事 之 建立java物件的初始化順序Java物件
- Java 類初始化順序Java
- Java類初始化順序Java
- Java中class的初始化順序Java
- 關於java的初始化順序Java
- 九、 Java程式初始化的順序(二)Java
- Java類(繼承)初始化順序Java繼承
- C++和C#物件初始化順序C++C#物件
- Java教室: Garbage Collection 清除物件的順序 (轉)Java物件
- 淺談Java類中的變數初始化順序Java變數
- Java初始化靜態變數的時間順序Java變數
- Java子類和父類的初始化執行順序Java
- js物件遍歷順序JS物件
- c#類的成員初始化順序C#
- 類的成員變數的初始化順序變數
- Java static變數、作用域、建構函式初始化順序Java變數函式
- JavaScript遍歷物件屬性順序JavaScript物件
- Oracle對於物件名的解釋順序Oracle物件
- C++建構函式初始化順序C++函式
- Java實現順序表Java
- java類載入順序Java
- Java類的基本執行順序Java
- Java的類的例項化順序Java
- 總結類初始化時的程式碼執行順序
- 按照陣列順序給物件重新組合成新物件陣列物件
- 學Java,Java書籍的最佳閱讀順序Java
- Java父子類載入順序Java
- java運算子優先順序Java
- JAVA中取順序號 (轉)Java
- Java的物件初始化過程Java物件
- Linux核心驅動程式初始化順序的調整(轉)Linux
- CAD中的物件顯示順序如何設定物件
- oracle 對於SQL語句中物件名的解析順序OracleSQL物件
- JVM類載入機制與類初始化順序JVM
- Hashtable中put進去的物件是否保持put的順序物件