JAVA中的实例变量为什么会有前向引用错误?
class A {
int a=b;
int b;
}
会出现前向引用错误,为什么呢?
根据Thinking in JAVA的说法,初始化顺序是先将对象所有基本类型设成默认的,然后开始字段定义处的初始化,然后构造方法
在上面那个例子里,由于对象的所有基本类型已经是默认的(a,b此时都是0),然后在进行字段定义处的初始化a=b时,b这时候的值是0,应该是可以赋值给a的,为什么不行呢?
谢谢~
------解决方案--------------------b还没定义吧??????
------解决方案--------------------就是,b还没定义,况且b还不是常量
------解决方案--------------------我提醒一下,这个是编译错误。
编译器到了第一行,发现后面还需要b,可是找不到b, 所以错误了
在C里面好像有这种用法,但需要在前面声明一下,通知编译器这个变量在后面声明。
------解决方案--------------------当然错了,因为这个时候根本不知道b是什么东西,类型啊,值啊,都是不确定的.