java中这种定义为什么非法,求解

图片

可以啊,但是不能这样连着写,类中定义的变量是成员变量,成员变量的赋值只能在代码块或者构造函数中。
改成如下这样就可以了:

class A {
    int i, j;

    {
        i = j = 10;
    }

    public static void main(String[] args) {
        A a = new A();
        System.out.println(a.i);
        System.out.println(a.j);
    }
}

这样就能测试i,j都被初始化为10了。

定义是对的,赋值是错的。java不允许i=j=10; c语言可以。

你得照java规则定义呀!每个语言都有它自己的规定!

{
i = j = 10;
}

类体是用来声明(可以一并初始化)成员变量的。
i 和 j 已经在前面定义过,i=j=10不是声明动作,
是单纯赋值动作,只能在方法体或代码块中进行。

类体里声明并初始化是没问题的,如下:
int j;
int i=j=0;

类的代码结构如下:
class 类名 {
类体
{
代码块
}
类体
方法名() {
方法体
}
类体
}