日期:2014-05-20  浏览次数:20599 次

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是什么东西,类型啊,值啊,都是不确定的.