2015-10-17 51 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