java_类实例化顺序

public class Test2 {
    public static void main(String [] args){
        System.out.println("第一次new AAA对象!");
        AAA aaa_1 = new AAA();
        System.out.println("第二次new AAA对象!");
        AAA aaa_2 = new AAA();
    }
}
class AAA{
    public CCC ccc = new CCC();
    public static BBB bbb = new BBB();
    static{
        System.out.println("aaa");
    }
    public AAA(){
        System.out.println("AAA构造方法执行");
    }
}
class BBB{
    public BBB(){
        System.out.println("BBB构造方法执行");
    }
}
class CCC{
    public CCC(){
        System.out.println("CCC构造方法执行");
    }
}
结果:
第一次new AAA对象!
BBB构造方法执行
aaa
CCC构造方法执行
AAA构造方法执行
第二次new AAA对象!
CCC构造方法执行
AAA构造方法执行
执行顺序:static修饰的属性(第一次new时执行)------static块(第一次new时执行)------没有static修饰的属性------构造方法

猜你喜欢

转载自blog.csdn.net/blossomfzq/article/details/82906038