Java为什么不能在 类中方法外给成员变量赋值(已定义)

class A {
int i;
i = 1;
}
为什么不行

i=1是语句,语句出现在类成员的位置(类中,成员方法之外)需要加{},使之成为构造代码块,否则在编译时会报错。改成这样就可以了(jdk8.0编译通过):
class AA {
int i;
{
i=i;
}
}
public class Test {
public static void main(String[] args) {
AA a2=new AA();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-19
i = 1
是java 的代码行,代码必须放到方法中 或静态代码块 中!!本回答被提问者采纳
第2个回答  2015-11-13
如果这样赋值,那么i=1会在什么时候执行呢?
i=1不属于任何一块,这就像为什么1+1要等于2这种.
相似回答