Java中的初始化程序块

时间:2020-01-09 10:34:48  来源:igfitidea点击:

创建类的实例时,将调用构造函数以初始化实例变量。使用构造函数初始化实例变量的另一种方法是在Java中使用初始化块。创建类的实例时,始终执行初始化程序块。

Java中的Initializer块的一般形式

{
  // whatever code is needed for initialization 
  // goes here
}

如何在Java中使用初始化程序块

Java编译器将初始化程序块复制到每个构造函数中。因此,如果类中有重载的构造函数,则可以使用此方法共享代码块。将公共代码放在初始化程序块中可确保始终执行该代码段,而与调用的构造函数无关。

初始化程序块Java示例

public class MainClass {
	
  //instance initializer block
  {
    System.out.println("Instance initializer block, this block is always executed");
  }
	
  MainClass(){
    System.out.println("In no-arg constructor");
  }
	
  MainClass(int i){
    System.out.println("In single argument constructor-" + i);
  }

  public static void main(String[] args) {
    MainClass obj1 = new MainClass();
    MainClass obj2 = new MainClass(10);    
  }
}

输出:

Instance initializer block, this block is always executed
In no-arg constructor
Instance initializer block, this block is always executed
In single argument constructor-10

如我们所见,是为对象的初始化而调用了no-arg构造函数还是调用了具有单个参数的构造函数,初始化程序块总是被执行。