public class OrderOfInitialization { public static void main(String[] args) {
House h = new House();
h.f();
}
}class Window{
Window(int er){
System.out.println("Window("+ er+")");
}
}class House{
Window w1 = new Window(1);;
House(){
System.out.println("House()");
w3 = new Window(33);
}
Window w2 = new Window(2);
void f(){
System.out.println("f()");
}
Window w3 = new Window(3);
}

解决方案 »

  1.   

    1.构造h对象
    2.初始化成员w1、w2、w3
    3.调用h的构造方法,输出house(),并给w3赋值
    4.调用h.f()方法
      

  2.   

    //后面注释的是语句执行顺序
    public class OrderOfInitialization {     public static void main(String[] args) { 
            House h = new House();   // 1
            h.f();           // 10
        } 

      
    class Window{ 
        Window(int er){ 
            System.out.println("Window("+ er+")"); // 3 5 7
        } 

      
    class House{ 
        Window w1 = new Window(1);   // 2
        House(){ 
            System.out.println("House()");   // 8
            w3 = new Window(33);           // 9
        } 
        Window w2 = new Window(2);   // 4
       
        void f(){ 
            System.out.println("f()");       // 11
            
        } 
        Window w3 = new Window(3);   // 6
      

  3.   

    楼主可以用debug调试一下,看看执行步骤。