Java初始化順序

2021-08-25 18:26:06 字數 942 閱讀 5725

當乙個物件被建立時,初始化是按照一下順序完成的:

[list]

[1]設定成員的值為預設的初始化值(0,false,null)。

[2]呼叫物件的構造方法(但是還沒有執行構造方法體)。

[3]呼叫父類的構造方法。

[4]使用初始化程式和初始塊初始化成員。

[5]執行構造方法體。

[/list]

貼兩段**,如果這兩段**想通了,物件初始化就沒有問題了。

class a

}class b extends a

}public class demo1

}

class a

}class b extends a

}public class demo2

}

慢慢想吧!執行出的結果和你想的一樣,那恭喜你了

這還沒有完,這個只是預設的情況,你還遇到過,[quote]super,this[/quote]關鍵字吧!

它們兩兄弟又是另一碼事了。

this指向本類,super指向超類,它們在建構函式中是如何使用的呢?

this用法,自己給自己貼段**下來好理解一些,

public class demothis

demothis()

public static void main(string args)

}

這樣就好理解了,但是要注意的是:

[quote]在構造器重,如果要使用關鍵字this的話,那麼必須放在構造器的第一行,如果不這樣將會導致編譯錯誤[/quote]

super用法和this 差不多一樣,就是指向父類,其餘都差不多的。

[quote="自勉"]這些都是基礎的基礎,自己記錄下來,自己提醒自己。[/quote]

java初始化順序

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

java初始化順序

例如以下 package chapter5 public class demo1one public void printinfo public static void main string args 程式一開始先執行 private static string password 0721 這行 ...

JAVA初始化順序

1 當使用新建物件例項或者呼叫靜態成員變數或者方法時,初始化靜態變數 2 靜態變數在初始化時在前面的先初始化,靜態塊和靜態變數相同對待 在初始化過程中,有新建物件例項的時候,暫時停止後面的靜態變數初始化 3 靜態變數沒有初始化時,使用預設的初始值 如int為0 4 新建物件例項,對非靜態的成員變數進...