为变量赋值

cod*_*der 0 java variables

为什么这段代码显示编译错误

public class Foo {
    int a=5;
    a=4;
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*oni 6

Java语言只允许类级别的成员声明,​​而不允许任意代码.

要在创建a对象时分配4,Foo您应该将赋值放在构造函数或初始化块中.

这是一个初始化块:

public class Foo {
    int a = 5;
    {
        a = 4;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个构造函数:

public class Foo {
    int a = 5;
    public Foo() {
        a = 4;
    }
}
Run Code Online (Sandbox Code Playgroud)