Java中类的初始化过程:(静态成员变量,静态代码块,普通成员变量,代码块初始化顺序)

初始化过程是这样的:
1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;
2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;
3.其次,初始化父类的普通成员变量和代码块,在执行父类的构造方法;
4.最后,初始化子类的普通成员变量和代码块,在执行子类的构造方法;

类的加载顺序:
父类静态成员变量、静态块>子类静态成员变量、 静态块>父类普通成员变量、非静态块>父类构造函数>子类 普通成员变量、非静态块>子类构造函数

静态代码块:随着类的加载而执行,而且只执行一次
非静态代码块:每创建一个对象,就执行一次非静态代码块

关于各个成员简介:
类的成员总结(属性,方法,构造器,代码块,内部类)

小练习:
下面代码输出结果是

class C {
    
    
    C() {
    
    
        System.out.print("C");
    }
}

class A {
    
    
    C c = new C();

    A() {
    
    
        this("A");
        System.out.print("A");
    }

    A(String s) {
    
    
        System.out.print(s);
    }
}

class Test extends A {
    
    
    Test() {
    
    
        super("B");
        System.out.print("B");
    }

    public static void main(String[] args) {
    
    
        new Test();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_54796785/article/details/126121830