在Java中,init()方法通常用于初始化對象或應用程序。它的執行順序取決于它在代碼中的位置以及調用方式。以下是一些常見的init()方法執行順序:
public class MyClass {
static int a = 10;
static {
System.out.println("Static block 1");
}
static int b = 20;
static {
System.out.println("Static block 2");
}
}
在這個例子中,靜態變量a和b以及靜態塊會按照它們在代碼中的順序進行初始化。
public class MyClass {
int a = 10;
public MyClass() {
System.out.println("Constructor");
}
int b = 20;
}
在這個例子中,實例變量a和b會在構造函數之前按照它們在代碼中的順序進行初始化。
public class Parent {
static {
System.out.println("Parent static block");
}
public Parent() {
System.out.println("Parent constructor");
}
}
public class Child extends Parent {
static {
System.out.println("Child static block");
}
public Child() {
System.out.println("Child constructor");
}
}
在這個例子中,父類的靜態塊和子類的靜態塊會按照它們在代碼中的順序進行初始化。當創建子類對象時,父類的實例變量和構造函數會在子類的實例變量和構造函數之前執行。
總結:init()方法的執行順序主要取決于它在代碼中的位置以及與其他代碼之間的關系。在理解這些規則后,可以更好地控制程序的執行順序。