程式碼說事 之 建立java物件的初始化順序
package util;
/**
* 類初始化順序:
*父類靜態程式碼塊--->子類靜態程式碼塊--->父類程式碼塊--->父類構造方法--->子類
*程式碼塊--->子類構造方法
*1. 父類靜態成員和靜態初始化塊 ,按在程式碼中出現的順序依次執行
*2. 子類靜態成員和靜態初始化塊 ,按在程式碼中出現的順序依次執行
*2. 父類例項成員和例項初始化塊 ,按在程式碼中出現的順序依次執行
*4. 父類構造方法
*5. 子類例項成員和例項初始化塊 ,按在程式碼中出現的順序依次執行
*6. 子類構造方法
* @author zhiziwei
*
*/
public class ObjectInit {
public ObjectInit(){
System.out.println("ObjectInit構造方法");
}
public static void main(String[] arg0){
new B();
System.out.println("----------------------------");
new B();
}
}
class A{
//static ObjectInit oi = new ObjectInit();//此時,“ObjectInit
//構造方法”輸出在"A static 程式碼塊"上邊
static{
System.out.println("A static 程式碼塊");
}//只執行一次
static ObjectInit oi = new ObjectInit();//此時,“ObjectInit構
//造方法”輸出在"A static 程式碼塊"下邊
protected String s = "先於父類程式碼塊宣告並初始化";
{
System.out.println("A 程式碼塊");
System.out.println("A 例項變數s輸出:"+s);
}//物件被建立幾次,執行幾次
public A(){
System.out.println("A 構造方法");
}
}
class B extends A{
static {
System.out.println("B static 程式碼塊");
}
{
System.out.println("B 程式碼塊");
}
public B(){
System.out.println("B 構造方法");
}
}
輸出結果:
A static 程式碼塊
ObjectInit構造方法
B static 程式碼塊
A 程式碼塊
A 例項變數s輸出:先於父類程式碼塊宣告並初始化
A 構造方法
B 程式碼塊
B 構造方法
----------------------------
A 程式碼塊
A 例項變數s輸出:先於父類程式碼塊宣告並初始化
A 構造方法
B 程式碼塊
B 構造方法
相關文章
- 九、 Java程式初始化的順序(二)Java
- java類初始化的順序Java
- Java中class的初始化順序Java
- 總結類初始化時的程式碼執行順序
- static程式碼塊、構造程式碼塊、建構函式以及Java類初始化順序C程式函式Java
- java類內部程式碼執行順序Java
- Java初始化靜態變數的時間順序Java變數
- 淺談Java類中的變數初始化順序Java變數
- 建立派生類物件,建構函式的執行順序物件函式
- Java子類和父類的初始化執行順序Java
- Java之執行緒的優先順序Java執行緒
- Java中,類與類,類中的程式碼執行順序Java
- js物件遍歷順序JS物件
- promise、async和await之執行順序的那點事PromiseAI
- Java中建構函式、靜態程式碼塊、程式碼塊的執行順序Java函式
- SQLServer 物件建立注意事項之dboSQLServer物件
- 夯實Java基礎系列7:Java 程式碼塊和執行順序Java
- 類的成員變數的初始化順序變數
- Java static變數、作用域、建構函式初始化順序Java變數函式
- Java普通程式碼塊,構造程式碼塊,靜態程式碼塊區別,執行順序的程式碼例項Java
- Java事務註解:讓你的程式碼如絲般順滑Java
- Go包中程式碼執行順序Go
- 【資料結構】堆疊(順序棧、鏈棧)的JAVA程式碼實現資料結構Java
- JavaScript遍歷物件屬性順序JavaScript物件
- Python - 物件導向程式設計 - MRO 方法搜尋順序Python物件程式設計
- python的順序程式設計Python程式設計
- [20210218]bash echo 建立順序號.txt
- 線性表的順序儲存C++程式碼C++
- 順序審批流的簡單程式碼實現
- Java實現順序表Java
- 關於類的物件建立與初始化物件
- [java基礎] 之 表示式和運算子的優先順序Java
- CAD中的物件顯示順序如何設定物件
- 按照陣列順序給物件重新組合成新物件陣列物件
- 說說你對HTML元素的顯示優先順序的理解HTML
- 【資料結構】佇列(順序佇列、鏈佇列)的JAVA程式碼實現資料結構佇列Java
- Java程式碼質量改進之:同步物件的選擇Java物件
- java中的程式碼塊(初始化塊)Java