{
Ststem.out.println(age); 1处 // cann't compile
age=22; 2处
}int age=21;
age 这个实例变量 在new的时候 初始化为缺省值(0)
为什么1处 会报illegal forward reference错误 而2处不会
age在已经{}块之前不是已经声明了
(不管实例域声明语句的实际位置在哪里都会先初始化为缺省值(0,null,false))这是Core2的说法
难道我理解错误了~~?
Ststem.out.println(age); 1处 // cann't compile
age=22; 2处
}int age=21;
age 这个实例变量 在new的时候 初始化为缺省值(0)
为什么1处 会报illegal forward reference错误 而2处不会
age在已经{}块之前不是已经声明了
(不管实例域声明语句的实际位置在哪里都会先初始化为缺省值(0,null,false))这是Core2的说法
难道我理解错误了~~?
解决方案 »
- 提高SQL性能另类基础方法 简单有效
- 请高手进来看看这两种数据库类哪种写法好些!!谢谢。
- 如何像word一样在换行时添加行号,删除中间某些行后下面的行号自动变化??
- 請問怎麼樣配置solex,是不是需要客戶端和服務端
- 利用一只灯泡,就找出了 Java 和 .Net 虚拟机上安全问题
- 一个小问题~~``大家帮忙解答~~~~~~谢谢~~!!不用耽搁太多时间~!
- 一个不大不小的问题,欢迎解答,谢谢
- applet 苦恼阿!ie 中为什么不能初始化 毕不了业了
- 在深圳哪里买<<Enterprise Java Beans>>???????????网上也行啊!!!!!!!!
- 关于sun.net.ftp的问题
- 求List中重复的个数!并列出来!
- 想做一个java根据时间间隔返回指定内容的方法
class ForwardReference{{
System.out.println(age); 1处 // cann't compile
age=22; 2处
}
int age=21;
}age 这个实例变量 在new的时候 初始化为缺省值(0)
为什么1处 会报illegal forward reference错误
而2处不会(居然不会也就是说已经程序里声明了这个变量age)
age在已经{}块之前不是已经声明了
(不管实例域声明语句的实际位置在哪里都会先初始化为缺省值(0,null,false))这是核心技术2的说法
难道我理解错误了~~?
1.在 int age 修改为静态类型,才会编译通过,你那段初始化代码块会在构造方法执行前执行
2.将 int age 变量放到初始化代码块前面
int age=21;
{
System.out.println(age);
age=22;
}
}class ForwardReference{
{
System.out.println(age);
age=22;
}
static int age=21;
}