类级错误:java中预期的<identifier>

时间:2015-04-28 08:01:25

标签: java

当我在班级写这些行时

int a;
a=5;

它给了我错误:&#34;标识符预期&#34;

当m将其声明为局部变量并且写得与

完全相同时
void m1() {
    int a;
    a=5;
}

没有错误。为什么?

4 个答案:

答案 0 :(得分:1)

当你在课堂上这样做时,你可以在一个语句中结合声明和作业,例如:

class A {
    int a = 5;
}

否则,您必须使用块(构造函数,方法,初始化块)包装赋值。例如:

class A {
    int a;

    public A() { a = 5; } //via constructor

    void setA() { a = 5; } //via method

    { a = 5; } //via initializer block
}

答案 1 :(得分:0)

将值赋给变量称为表达式。我们无法在类中编写任何表达式。我们可以在方法体中做同样的事情。基本上,当定义范围并因此在方法中允许时,我们可以正确表达式。

答案 2 :(得分:0)

以下原因:

int a=5;
在类级别声明的

在以下情况下不会产生编译时错误:

void m1() {
    int a;
    a=5;
}
声明

是因为m1()有自己的范围。

对于实例,如果不声明和访问变量a,则会引用类的字段,在本地声明a时,您总是引用在a内声明的那个。

PS:您无法在课程级别执行以下操作:

int a;
a=5;

你必须:

int a=5;

答案 3 :(得分:0)

您无法在类中编写代码,只能在方法,构造函数或初始化器{}块中编写代码。这就是你得到语法错误的原因。 可能你想使用这样的初始化程序块:

class my{
 int a;
 {
  a=1;
 }
}