2015-10-17 50 views
1

當我試圖編譯下面的程序時,出現錯誤,但是如果我編寫了int i = 3,那麼它會成功編譯。Erorr在類範圍初始化下一行中的變量時

class A { 
    int i; 
    i=3; //initializing the variable in next line so error comes 
    public static void main(String args[]) { 
     System.out.print("hiii.."); 
    } 
} 

回答

4

Java不允許您在構造函數或方法之外編寫語句。將你的行移到構造函數或任何你想要的方法。

只有聲明允許在方法和構造函數之外。

作爲一個方面說明,有靜態塊,可以讓你做同樣的事情,我不認爲你需要在這種情況下。

給一個嘗試閱讀JLS # Blocks and Statements

+0

但爲什麼它的工作原理,如果我在聲明的時間intialize即INT I = 3; – Dani

+0

@Dani更新了我的文章。 –

+0

A類{i = 0; int i = 3; public static void main(String args []){ System.out.print(「hiii ..」); } } 但是,如果我在聲明時寫入intialize,它完美的工作,沒有寫在方法,構造函數或塊 – Dani