黑马程序员技术交流社区

标题: 求解 内部类 为什么可以有构造代码块却不能有静态代码块? [打印本页]

作者: 夜默    时间: 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