Java中類初始化的順序

2021-03-31 18:47:04 字數 730 閱讀 3948

在建立物件時,物件所在類的所有資料成員會首先進行初始化,如果其中的成員變數有物件,那麼它們也會按照順序執行初始化工作。在所有類成員初始化完成後,才呼叫物件所在類的構造方法建立物件。構造方法作用就是初始化。

靜態物件(變數)在非靜態物件前初始化。靜態物件(變數)只初始化一次,再次呼叫就不初始化了,但非靜態物件在每次呼叫時都要初始化。

程式中的主類的靜態變數會在main()方法執行前進行初始化工作。

不僅第1次建立物件時,類中所有的靜態變數要初始化,第1次訪問類中的靜態變數(沒有建立物件)時,該類中所有的靜態變數也要按照它們在類中排列的順序初始化。

初始化的順序包括構造方法呼叫的順序如下:

1. 主類的靜態成員首先初始化。

2. 主類的超類的構造方法按照從最高到最低的順序被呼叫。

3. 主類的非靜態物件(變數)初始化。

4. 呼叫主類的構造方法。

在乙個構造方法中只能呼叫一次其它的構造方法,並且呼叫構造方法的語句必須是第一條語句。

class one

}class two

}public class test

}one-3

one-1

one-2

two-3

test main() start...

one-1

one-2

two-1

-------------

one-1

one-2

two-2

Java中類的初始化順序

public class classinitordertest 成員變數 private string field member field 非靜態 塊 構造器 public classinitordertest public static void main string args 程式輸出結果 ...

Java類初始化順序

類的初始化順序 首先執行父類靜態的內容,父類靜態的內容執行完畢後,接著去執行子類的靜態的內容,當子類的靜態內容執行完畢之後,再去看父類有沒有非靜態 塊,如果有就執行父類的非靜態 塊,父類的非靜態 塊執行完畢,接著執行父類的構造方法 父類的構造方法執行完畢之後,它接著去看子類有沒有非靜態 塊,如果有就...

java類初始化順序

我們大家都知道,對於靜態變數 靜態初始化塊 變數 初始化塊 構造器,它們的初始化順序依次是 靜態變數 靜態初始化塊 變數 初始化塊 構造器。我們也可以通過下面的測試 來驗證這一點 public class initialordertest 初始化塊 構造器 public initialorderte...