19. Static inner class 与non static inner class的区别

2016/9/29 16:30 下午 posted in  Java comments

Java当中一种有四种内部类:

  • 静态内部类
  • 普通内部类
  • 局部内部类
  • 匿名内部类

静态内部类(static inner class)

class outerClass{
    //静态内部类
    static class staticInnerClass{
    }
    //普通内部类
    class innerClass{
    }
    //局部内部类
    public void function(){
        class innerClass{
        }
    }
    //匿名内部类
    public MyFrame() {
     addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            ....
        }
    });
}
静态内部类 普通内部类 局部内部类 匿名内部类
实例化方式 不依赖外部类实例 依赖外部类实例 方法内部 只有一个实例
访问权限 外部静态成员和静态方法 外部所有成员方法 只能访问方法中final局部常量 同左
构造函数
其它 无publi,protected等修饰 同左;必须继承一个父类或者实现一个接口