在Java语言规范(jls)中,关于类成员的定义中,发现了InstanceInitializer这个东西。

来看一下InstanceInitializer的描述

看起来和构造器差不多,再来看下构造器描述:

package InstanceInitializers;
public class Demo {
public int result;
/*
这就是InstanceInitializer
*/
{
int num1 = 5;
int num2 = 10;
result = num1 + num2;
System.out.println("执行实例初始化器");
}
public Demo() {
result = 100;
System.out.println("执行构造器");
}
public static void main(String[] args) {
Demo demo = new Demo();
System.out.println(demo.result);
}
}

public class Demo {
{
System.out.println("执行实例初始化器");
}
public Demo() {
System.out.println("执行构造器");
}
public static void main(String[] args) {
/*
声明一个匿名内部类
*/
Demo demo = new Demo() {
/*
这里是InstanceInitializer
*/
{
System.out.println("执行匿名内部类的实例初始化器");
}
};
}
}
