Java FAQ:インスタンス初期化子

Java FAQ:S011 Q-12

class C2008042501 {
    {
        System.out.println("C2008042501 {} ");
    }

    C2008042501() {
        System.out.println("C2008042501()");
    }
}

public class C2008042500 {
    public static void main(String[] args) {
        new C2008042501();
    }
}

で、

C2008042501 {} 
C2008042501()

こんなものがあったのか〜


継承のある場合

class C2008042511 {
    {
        System.out.println("C2008042511 {} ");
    }

    C2008042511() {
        System.out.println("C2008042511()");
    }
}

class C2008042512 extends C2008042511 {
    {
        System.out.println("C2008042512 {} ");
    }

    C2008042512() {
        System.out.println("C2008042512()");
    }
}

public class C2008042510 {
    public static void main(String[] args) {
        new C2008042512();
    }
}

で、

C2008042511 {} 
C2008042511()
C2008042512 {} 
C2008042512()


複数ある場合

class C2008042521 {
    {
        System.out.println("C2008042521 {} 1");
    }

    {
        System.out.println("C2008042521 {} 2");
    }

    C2008042521() {
        System.out.println("C2008042521()");
    }
}

public class C2008042520 {
    public static void main(String[] args) {
        new C2008042521();
    }
}

で、

C2008042521 {} 1
C2008042521 {} 2
C2008042521()