類欄位初始化

2022-08-10 02:36:19 字數 758 閱讀 1047

對類的字段的初始化主要有以下三種方式:

1. 通過宣告對應字段直接給定該字段的初始值(此情況適用於所有的物件都具有乙個相同的值,或者都是有相同的形式的值

view code

public

class

initiatefield

2. 通過建構函式來設定類的字段的值

view code

public

class

initiateclass

private

intitest;

private

date currentdate;

}

3. 通過初始化塊**初始化**  (初始化塊中初始化的變數,必須在初始化塊前已經被宣告過了的。

view code

public

class

initiateclass

}

當同時存在三種初始化部分的時候,具體的順序為:

1. 將所有的類字段全部初始化為預設的初始化值(數值型->0,布林型->false,物件->null)

2. 執行宣告初始化與初始化**塊部分

3. 檢查是否呼叫了其他的構造器,如果有構造器,那麼執行其構造器主體

4. 執行當前建構函式的主體

顯式給定初始化語句與**初始化塊執行的順序是根據語句在class中編寫的順序。

構造方法 類的初始化塊以及類字段的初始化順序

首先,以下 為何無法通過編譯?哪兒出錯了?public class test class foo 如果類提供了乙個自定義的構造方法,將導致系統不再提供預設構造方法。如果乙個類中既有初始化塊,又有構造方法,同時還設定了字段的初始值,誰說了算?class initializeblockclass pub...

類初始化和例項初始化

乙個類要建立例項需要先載入並初始化該類 main方法所在的類需要先載入和初始化 乙個子類要初始化需要先初始化父類 乙個類初始化就是執行clinit 方法 clinit 方法由靜態類變數顯式賦值 和靜態 塊組成 類變數顯式賦值 和靜態 塊 從上到下順序執行 clinit 方法只執行一次 父類的初始化 ...

類初始化和例項初始化

father public class father father public inttest public static intmethod son public class sonextends father son public inttest public static intmethod...