📜  Java中的实例初始化块 (IIB)(1)

📅  最后修改于: 2023-12-03 15:31:59.483000             🧑  作者: Mango

Java中的实例初始化块 (IIB)

在Java中,实例初始化块(Instance Initialization Block)是一个特殊的代码块,它在创建对象时被执行。这个代码块在类的所有构造器之前执行,用于初始化实例变量或执行其他必要的步骤。

语法

实例初始化块的语法非常简单,只需要在类体中使用花括号括起来即可:

class ExampleClass {
    {
        // 这是实例初始化块
    }
}

如果有多个实例初始化块,它们将按照定义的顺序依次执行。

示例

以下是一个使用实例初始化块的示例:

public class Circle {
    private double radius;
    private double area;

    {
        System.out.println("执行实例初始化块");
        radius = 1.0;
        area = Math.PI * radius * radius;
    }

    public Circle(double radius) {
        System.out.println("执行构造器");
        this.radius = radius;
        area = Math.PI * radius * radius;
    }

    public void print() {
        System.out.println("半径:" + radius);
        System.out.println("面积:" + area);
    }

    public static void main(String[] args) {
        Circle c1 = new Circle(2.0);
        c1.print();
        System.out.println("----------------------");
        Circle c2 = new Circle(3.0);
        c2.print();
    }
}

输出结果:

执行实例初始化块
执行构造器
半径:2.0
面积:12.566370614359172
----------------------
执行实例初始化块
执行构造器
半径:3.0
面积:28.274333882308138

可以看到,在每次创建对象时,实例初始化块都会被执行,用于初始化实例变量。

总结

实例初始化块是Java中一个很有用的特性,可以用于进行必要的初始化或执行其他需要在构造器之前完成的操作。它与构造器一起,共同完成了Java中对象的创建过程。