JAVA構造方法初始化順序

2021-09-01 21:37:25 字數 551 閱讀 3742

直接上例子

class window 

}class house

window w2 = new window(2);

void f()

window w3 = new window(3);

}public class orderofinitialization

}

執行結果如下:

window(1)

window(2)

window(3)

house()

window(55)

f()

分析:

house類中的有三個window類的物件w1,w2,w3。根據通常的理解,應該是w1初始化,w2,w3都在構造方法的後面,為什麼輸出的順序是不是這樣的呢?那是因為在類的內部,即使變數定義分散在方法任何角落,它也會比方法先執行。假設w2,w3後執行,那麼w3在構造方法中是沒有宣告的,編譯都會通過不了。存在就是它的道理,有時候可以採用逆向思維,採用反證法來驗證。

java初始化構造函式呼叫順序

類初始化時構造函式呼叫順序 1 初始化物件的儲存空間為零或 null 值 2 呼叫父類建構函式 3 按順序分別呼叫類成員變數和例項成員變數的初始化表示式 4 呼叫本身建構函式。例子 public class dollar extends money public static void main s...

java初始化構造函式呼叫順序

直接舉例說明,看下面程式和結果。class helloa 父類塊 父類靜態塊 static public class hellob extends helloa 塊 靜態塊 static public static void main string args 執行結果 static a static...

java初始化順序

1 父類靜態成員和靜態初始化塊 按在 中出現的順序依次執行 2 子類靜態成員和靜態初始化塊 按在 中出現的順序依次執行 3 父類例項成員和例項初始化塊 按在 中出現的順序依次執行 4 父類構造方法 5 子類例項成員和例項初始化塊 按在 中出現的順序依次執行 6 子類構造方法 public abstr...