在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括钩子函数)被调用之前进行初始化。
public class HelloWorld{
public static void main(String []args){
House h = new House();
h.f();
}
}
class House{
Window w1 = new Window(1);
public House(){
System.out.println("House");
w3 = new Window(33);
}
Window w2 = new Window(2);
void f(){
System.out.println("=====");}
Window w3 = new Window(3);
}
class Window{
public Window(int i){
System.out.println("Window"+i);
}
}
输出:
Window1
Window2
Window3
House
Window33
=====