在Java中,成員變量的初始化順序是根據(jù)它們在類中的聲明順序來確定的。當(dāng)類被加載時,構(gòu)造函數(shù)會按照成員變量在代碼中出現(xiàn)的順序依次初始化它們。需要注意的是,靜態(tài)變量(使用static關(guān)鍵字聲明的變量)會在非靜態(tài)變量之前初始化。
以下是一個簡單的例子,說明了成員變量初始化順序:
public class MyClass {
// 非靜態(tài)變量
String nonStaticVar1 = "Non-static variable 1";
int nonStaticVar2 = 42;
// 靜態(tài)變量
static String staticVar1 = "Static variable 1";
static int staticVar2 = 100;
public static void main(String[] args) {
MyClass obj = new MyClass();
System.out.println(obj.nonStaticVar1); // 輸出:Non-static variable 1
System.out.println(obj.nonStaticVar2); // 輸出:42
System.out.println(MyClass.staticVar1); // 輸出:Static variable 1
System.out.println(MyClass.staticVar2); // 輸出:100
}
}
在這個例子中,我們可以看到成員變量的初始化順序是按照它們在類中的聲明順序進(jìn)行的。首先初始化非靜態(tài)變量,然后初始化靜態(tài)變量。在非靜態(tài)變量中,先初始化nonStaticVar1
,再初始化nonStaticVar2
。在靜態(tài)變量中,先初始化staticVar1
,再初始化staticVar2
。