在Java中需要初始化块

时间:2017-07-24 17:47:46

标签: java

Java中初始化块的需求是什么?它如何帮助编码?

我们只是在代码中添加一组花括号吗?

例如:

public class GFG
{
    // Initializer block starts..
    {
        // This code is executed before every constructor.
        System.out.println("Common part of constructors invoked !!");
    }
    // Initializer block ends

    public GFG()
    {
        System.out.println("Default Constructor invoked");
    }

    public static void main(String arr[])
    {
        GFG obj1;
        obj1 = new GFG();

    }
}

1 个答案:

答案 0 :(得分:0)

有两种类型的初始化程序块。 您有一个静态初始化程序块,它在创建类时运行。它的语法是

static {
    //stuff here
}

另一个是实例初始化块,它在您实例化对象时运行。它的语法是

{
    //stuff here
}
  

如果初始化需要一些逻辑(例如,错误处理或for循环来填充复杂的数组),则简单的赋值是不合适的。实例变量可以在构造函数中初始化,其中可以使用错误处理或其他逻辑。为了为类变量提供相同的功能,Java编程语言包括静态初始化块。

这是为了回答您何时应该使用它们的问题。您基本上使用它们来初始化具有某种特定逻辑的变量。 It's from the official Oracle documentation