📅  最后修改于: 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中使用静态块