2017-07-24 59 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