云海顽石 发表于 2009-2-5 10:37:17

Java的对象初始化

class A{
      {show(0);}
      int x=1;
      {show(1);}
      A(){x=2;}
      void show(int label){}
    }
    class B extends A{
      {show(2);}
      int y=1;
      {show(3);}
      B(){y=2;}
      void show(int label){
             System.out.println(label ": x=" x " y=" y);
      }
    }
    public class C{
      public static void main(String[] args){
            new B().show(4);
      }
    }

    输出:
    =================================================
    0: x=0 y=0
    1: x=1 y=0
    2: x=2 y=0
    3: x=2 y=1
    4: x=2 y=2
    说明了初始化的顺序:
    0. 为基类和子类的成员分配存储空间
    1. 基类成员赋初值
    2. 基类构造函数
    3. 子类成员赋初值
    4. 子类构造函数
页: [1]
查看完整版本: Java的对象初始化