Java 实例初始值设定项(instance initializer)是在执行构造函数代码之前执行的代码块。
每次我们创建一个新对象时,这些初始化器都会运行。
https://onitroad.com 更多教程
Java 实例初始化器的特性
- 我们可以在一个类中定义多个初始化器。
- 所有初始化程序都按顺序执行,以便它们出现在类体中。
- 初始化程序在调用父类构造函数之后和执行子类构造函数之前运行。请注意,如果我们没有明确提供构造函数作为子类构造函数中的第一条语句,Java 会插入父类
super()
的默认构造函数。 - 执行完所有初始化程序后,将执行构造函数的语句。
- 我们可以在初始化器中调用这个类和父类的构造函数。
实例初始化语法
一个实例初始化块是用花括号创建的。
对象初始化语句写在大括号内。
public class DemoClass { // 第1个 初始化块 { //statements } // 第2个 初始化块 { //statements } }
Java 实例初始化器示例
public class ParentClass { public ParentClass() { System.out.println("In ParentClass Constructor"); } //Instance Initializer { System.out.println("In ParentClass Instance Initializer"); } }
public class ChildClass extends ParentClass { public ChildClass() { super(); //If not provided, JVM will insert it System.out.println("In ChildClass Constructor"); } //Instance Initializer 1 { System.out.println("In ChildClass Instance Initializer 1"); } //Instance Initializer 2 { System.out.println("In ChildClass Instance Initializer 2"); } }
public class Main { public static void main(String[] args) { ChildClass childObj = new ChildClass(); } }
输出:
In ParentClass Instance Initializer In ParentClass Constructor In ChildClass Instance Initializer 1 In ChildClass Instance Initializer 2 In ChildClass Constructor
日期:2020-09-17 00:10:22 来源:oir作者:oir