让我们看看这个方法:
void myMethod(){
int b=5;
a=10;
}
您可以看到,我很容易将a的值从5更改为10。
但是如果我在课堂上做同样的事情,它将无法编译。它表示预期的标识符:
public class MyClass {
int a=5;
a=10;
}
有人知道这里发生了什么吗?为什么看起来逻辑和容易的代码在类和方法主体中无法以相同的方式工作?
[a=10
是一个赋值语句,只允许在代码块(方法,构造函数,静态初始化程序等...)中使用
因此这些被接受
public class MyClass {
static int a=5;
static {a=10;}
public static void method() {
a = 10;
}
}
或
public class MyClass {
int a=5;
{a=5;}
public void method() {
a=10;
}
}