结论
-
构造器:和类同名而且没有返回值,用来初始化类属性(自然是对象实例化一次就执行一次)
- 代码块的作用:用来初始化类、对象的信息
-
构造代码块:对象实例化一次,就执行一次;
- 内部可以输出语句
- 随着对象的创建而执行
- 每创建一个对象,就执行一次非静态代码块
- 作用:可以在创建对象时,对对象的属性等进行初始化
- 如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行
- 非静态代码块内可以调用静态的属性、静态的方法,或非静态的属性、非静态的方法
- 静态代码块:对象实例化就执行,无论new多少个对象,仅仅执行一次;
- 静态代码块是跟着类的加载而加载的,而构造代码块和构造方法是随着对象的加载而加载的
- 内部可以输出语句
- 随着类的加载而执行,而且只执行一次
- 作用:初始化类的信息
- 如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行
- 静态代码块的执行要优先于非静态代码块的执行
- 静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构
执行顺序
静态代码块------》构造代码块-----》构造函数