黑马程序员技术交流社区
标题:
概念解析
[打印本页]
作者:
毛标
时间:
2012-9-27 17:30
标题:
概念解析
本帖最后由 毛标 于 2012-9-27 21:40 编辑
static {
System.out.println(demo);//这里换成b.demo我知道可以输出,就demo为什么不行
}
static int demo=1;
为什么会报错,
static int demo=1;
static {
System.out.println(demo);
}这样就可以输出
思维有些混乱,,谁能给解释下
作者:
刘进朝
时间:
2012-9-27 17:57
写两次做什么?
作者:
陈琦
时间:
2012-9-27 18:01
static 修饰的静态代码块在类加载的时候就进行初始化,因为你写的是方法所以类加载的时候就运行,而它并不知道有demo这个变量,应该算向前引用的问题。
作者:
王贵朝
时间:
2012-9-27 18:04
static {
System.out.println(demo);//这里换成b.demo我知道可以输出,就demo为什么不行
}
static int demo=1;
//在static中的输出语句会出现非法向前引用,可以证明静态代码块在类一加载时就会运行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2