2017-07-24 60 views
0

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

    } 
} 
+0

我从来没有在java之前看过这个语法。更清楚你要求的东西 – ja08prat

+0

@ ja08prat显然这是真实的。我以前见过静态块,但从来没有看到过非静态的初始化块。 – Carcigenicate

+0

@Carcigenicate每天都会学到新的东西哈哈 – ja08prat

回答

0

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

static { 
    //stuff here 
} 

另一种是实例的初始化块,当你实例化一个对象运行。其语法是

{ 
    //stuff here 
} 

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

这是回答你什么时候应该使用它们的问题。你基本上用它们用某种特定的逻辑来初始化一个变量。 It's from the official Oracle documentation