Java初涉之4--浅谈静态块和非静态块

静态块形式:
static{
内容
}
非静态块形式:
{

}
执行的顺序:
静态块->非静态块->构造函数

核心不同:
静态块只在第一次new时执行;(初始化一些项目最常用的变量和对象)
非静态块每一次new都执行一次

// Test
// 当含有静态块,非静态块,构造函数时,子类继承时执行顺序为
// 父类静态块-->子类静态块-->父类非静态块-->
// 父类构造函数-->子类非静态块-->子类构造函数
// 执行结果:
// static a = 10
// static b = 10
// non-static a = 10
// Parent Constructor
// non-static b = 10
// Children Constructor
//
// 静态块:在类加载期间执行的代码块,只执行一次,
// 用来在软件中加载静态资源(图像、音频等等)
//
//
//

public class Parent{
    static final int a = 10;
    Parent(){
        System.out.println("Parent Constructor");
    }
    static{
        System.out.println("static a = " + a);
    }
    {
        System.out.println("non-static a = " + a);
    }
}

public class Children extends Parent{
    static final int b = 10;
    Children(){
        System.out.println("Children Constructor");
    }
    static{
        System.out.println("static b = " + a);
    }
    {
        System.out.println("non-static b = " + a);
    }
}

public static_Main(){
    public static void main(String[] args) {
        Children c = new Children();
    }
}

你可能感兴趣的:(java)