Java内部类

  • 成员内部类
成员内部类:可以访问外部类的所有成员属性和方法(包括 private / static)
成员内部类:编译器会默认为成员内部类添加了一个指向外部类对象的引用
成员内部类:当内部类与外部类的字段或方法同名时,默认访问内部类的成员,如果要访问外部类成员,则需要显示指定:
外部类.this.成员变量
外部类.this.成员方法
  • 局部内部类
局部内部类:像是方法里面的一个局部变量一样
局部内部类:不能有 public、protected、private、static 修饰符
  • 匿名内部类
匿名内部类:在编译的时候由系统自动起名为 Outter$1.class。
举例:
   public void somethingHappen() {
        Runnable runnable = new Runnable(){
            @Override
            public void run(){
                ++year;
            }
        };
        runnable.run();
    }
  • 静态嵌套类
静态内部类:不依赖于外部类,没有指向外部类对象的引用
静态内部类:只能使用外部类的static成员变量或者方法
  • 创建内部类
创建静态内部类对象: 外部类类名.内部类类名 xxx = new 外部类类名.内部类类名()
创建成员内部类对象: 外部类类名.内部类类名 xxx = new 外部类类名().new 内部类类名()
  • 内部类的原因 ( 好处 )
每个内部类都能独立地实现一个接口,不管外部类是否实现类某个接,对于内部类没有影响

demo 地址

参考文章:
Java 内部类详解

你可能感兴趣的:(Java内部类)