public class Test {
int a=10;
a=20;
}
为什么我不能像上面那样分配值;
答案 0 :(得分:2)
当你声明一个像这样的实例变量(类成员)时:
public class Test {
int a=10;
}
这意味着类Test的任何实例都有自己的此变量副本,它将是instantiated到10。
Java在声明实例变量时允许assignment,但在声明变量之后,它只能在以下位置分配:
这就是第二行无法编译的原因。
答案 1 :(得分:0)
值必须是静态的,或者在方法内部分配类的这一部分中的值。除非您声明一个静态代码块,否则您无法以这种方式更改a的值。
尝试:
public class Test {
private static int a = 20;
}
或
public class Test {
private int a = 10;
public static void Main(String[] args) {
a = 20;
}
或
public class Test {
static {
int a = 10;
a = 20;
}
答案 2 :(得分:0)
试试这个。它被称为初始化块
public class Test {
int a=10;
{a=20;}
}
答案 3 :(得分:-3)
编辑:
您只能在方法中更改变量值。 Java是客观语言而不是程序性的。