黑马程序员技术交流社区
标题: 求解 内部类 为什么可以有构造代码块却不能有静态代码块? [打印本页]
作者: 夜默 时间: 2013-6-2 14:38
标题: 求解 内部类 为什么可以有构造代码块却不能有静态代码块?
本帖最后由 4968547610317 于 2013-6-2 16:39 编辑
public class Outer {//外部类
int x=3;
class Inner{//内部类 可以被修饰为private(进行封装)
//可以被静态static修饰
void show(){
int x=4;
System.out.println(x);//4
System.out.println(Outer.this.x);//3
}
}
{
System.out.println("1");//构造代码块
}
static
{
求解为什么内部类不能有静态代码块
}
}
}
作者: 赵乐 时间: 2013-6-2 16:26
我的理解是跟 非静态内部类中不能有静态成员是一个道理
java类加载顺序,首先加载类,执行static变量初始化,接下来执行对象的创建。
例中 首先加载Outer外部类,再加载Inner,而在没有实例化Inner的前提下,怎么给Inner初始化呢。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |