两种写法有什么区别,报错错在哪里

语法上有什么区别,两种写法表表达的不一样吗
不是给成员变量 赋值吗

img

img

  1. 只有在定义时才可以对多个变量进行赋值,如你写的int x,y; 是否赋值均可,可以有多个变量。
    没有定义时,赋值语句必须单个出现成为独立的语句,所以第二张图编译错误。
  2. 第一张图出现了对于x和y的重新定义,所以只是在方法中定义了与全局变量名称相同的局部变量,并不是对全局变量赋值。
  3. 第二张图表达的含意是对全局变量赋值,但是不符合语法,参考第一点。

有帮助请采纳,还有不懂的可以继续追问~

第一个又来了一次x=a,y=b。这里的x,y是局部变量,而构造方法中优先处理局部变量,这样的话成员属性x,y赋值不会成功
第二个就是正常赋值,两个语句用;隔开

int x=a,y=b;这句是声明了两个变量x,y;这样写语法没有什么问题,此时成员变量没有被赋值,他们的值还是0。 x=a,y=b;这个已经不是声明,而是普通变量赋值,语法上就不支持。