为什么我不能在java中的公共位置分配值

时间:2014-07-29 12:54:54

标签: java variables instance

public class Test {
    int a=10;
    a=20;
}

为什么我不能像上面那样分配值;

4 个答案:

答案 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是客观语言而不是程序性的。