【问题标题】:Need for initialization block in Java [duplicate]Java中需要初始化块[重复]
【发布时间】:2017-12-30 09:54:14
【问题描述】:

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();

    }
}

【问题讨论】:

  • 我以前也从未在 java 中见过这种语法。更清楚你在问什么
  • @ja08prat 显然这是真的。我以前见过静态块,但从未见过非静态初始化块。
  • @Carcigenicate 每天都能学到新东西,哈哈

标签: java


【解决方案1】:

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

static {
    //stuff here
}

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

{
    //stuff here
}

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2010-09-23
    相关资源
    最近更新 更多