标识符预期?

Identifier expected?

给定以下代码:

public class Test1 {
    int i;
    i = 4;
}   

public class Test2 {
    public static void main(String[] args) {
        Test1 t1 = new Test1();
        System.out.println(t1.i);
    }
}

为什么我尝试编译 Test2 时得到以下信息?

./Test1.java:3: error: <identifier> expected
    i = 4;
     ^
./Test1.java:3: error: cannot find symbol
    i = 4;
    ^
  symbol:   class i
  location: class Test1
2 errors

您不能在 class 正文中分配变量。试试这个:

public class Test1 {
    int i;
    {
        i = 4;
    }
}

作为替代方案,您可以在构造函数中或在 setter 方法中分配 i

public class Test1 {
    int i;

    public Test1(int i) {
        this.i = i;
    }

    public void setI(int i) {
        this.i = i;
    }
}

您在 class 内声明 "int i"。您可以随声明一起分配或使用 getter 和 setter.

public class Test1 {
    int i = 4;
}

public class Test1 {
    private int i = 4;

    public int getI() {
        return i;
    }

    public void setI(int i) {
        this.i = i;
    }
}