直接上例子
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...