Java對象初始化大全

字號:


    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. 基類構(gòu)造函數(shù)
    3. 子類成員賦初值
    4. 子類構(gòu)造函數(shù)