📜  Java中的初始化程序块Initializer Block

📅  最后修改于: 2020-03-22 13:01:16             🧑  作者: Mango

初始化程序块包含创建实例时始终执行的代码。它用于声明/初始化类的各种构造函数的公共部分。例如,

import java.io.*;
public class GFG
{
    // 初始化程序块开始..
    {
        // 此部分代码在每次调用构造函数前执行.
        System.out.println("同样的部分被调用!!");
    }
    // 初始化程序块结束
    public GFG()
    {
        System.out.println("默认构造函数被调用");
    }
    public GFG(int x)
    {
        System.out.println("参数化构造函数被调用");
    }
    public static void main(String arr[])
    {
        GFG obj1, obj2;
        obj1 = new GFG();
        obj2 = new GFG(0);
    }
}

输出:

同样的部分被调用!!
默认构造函数被调用
同样的部分被调用!!
参数化构造函数被调用

我们可以注意到,每当调用任何构造函数时,都会执行初始化程序块的内容(在构造函数的内容之前)
初始化构造函数和初始化块的顺序无关紧要,初始化块总是在构造函数之前执行。

如果我们想为一个类的所有对象执行一次代码,该怎么办?
我们在Java中使用静态块