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
- 程式碼說事 之 建立java物件的初始化順序Java物件
- Java中class的初始化順序Java
- 九、 Java程式初始化的順序(二)Java
- Java初始化靜態變數的時間順序Java變數
- 淺談Java類中的變數初始化順序Java變數
- Java子類和父類的初始化執行順序Java
- js物件遍歷順序JS物件
- 類的成員變數的初始化順序變數
- Java static變數、作用域、建構函式初始化順序Java變數函式
- JavaScript遍歷物件屬性順序JavaScript物件
- Java實現順序表Java
- CAD中的物件顯示順序如何設定物件
- 按照陣列順序給物件重新組合成新物件陣列物件
- 總結類初始化時的程式碼執行順序
- 學Java,Java書籍的最佳閱讀順序Java
- Java父子類載入順序Java
- java運算子優先順序Java
- 物件導向 -- 類的載入順序 類和物件的名稱空間物件
- JVM類載入機制與類初始化順序JVM
- java基礎(四) java運算順序的深入解析Java
- Java之執行緒的優先順序Java執行緒
- 關於JAVA中順序IO的基本操作Java
- PrepareStatement物件進行批處理的典型步驟順序REST物件
- 建立派生類物件,建構函式的執行順序物件函式
- Java框架學習順序是哪些Java框架
- Java框架學習順序是哪些?Java框架
- java setPriority()設定優先順序Java
- Java 物件初始化的過程介紹Java物件
- 資料結構_順序表_順序表的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- Java for迴圈中語句執行的順序Java
- static程式碼塊、構造程式碼塊、建構函式以及Java類初始化順序C程式函式Java
- Java流程控制02:順序結構Java
- python運算子及優先順序順序Python
- 順序表
- 面試題:物件的儲存形式 和 . 運算子的優先順序面試題物件
- 第2章 順序表及其順序儲存
- java繼承關係下執行順序Java繼承
- Java優先順序佇列DelayedWorkQueue原理分析Java佇列