Java中成员变量为什么不能像局部变量那样重新赋值,比如这样

class Demo{
private int x=1;
x=2;
}

赋值是语句
类体里面只能出现变量和方法,不能出现语句.
而上面那一句是因为那是在定义变量的时候给变量初始化追问

谢谢,能不能再问个问题,待会采纳你的
if语句这两个区别,为什么一个可以、一个不可以编译
if(true)
int x=1;
if(true)
{ int x=1; }

追答

这个问题我也纠结了一天啊....
翻了好多笔记然后请教大神之后,我是这么理解的:
if语句去掉大括号之后只能跟一句语句(说俗点就是一行代码),如果在这个时候定义一个局部变量,java的底层会自动判断定义的这个变量没有意义,因为刚创建出来就要消亡,这是一种无意义的浪费资源,不被java所允许,所以编译会报错.

追问

好的,谢谢!

温馨提示:答案为网友推荐,仅供参考
相似回答