内部类

内部类

#内部类

内部类

​ |-- 非静态内部类 (成员内部类)

​ |-- 静态内部类 (类内部类)

​ |-- 局部内部类

​ |-- 匿名内部类

内部类被当前外部类的成员, 外部类必须通过new关键值来调用内部类的实例变量或是实例方法

内部类可以直接访问外部类的所有成员

#非静态内部类

  • 相当于Outer的成员变量, 可以访问实例变量,实例方法, 但是不能访问类变量

  • 通过new Outer().new Inner()来调用

  • 如果外部类和内部类具有相同的成员变量或方法, 访问外部类的成员变量或方法时, 需要使用this关键字

#静态内部类

  • static修饰的内部类, 称为静态内部类, 完全属于外部类本, 不属于外部类某一对象
  • 静态内部类可以包括静态成员, 也可以包含非静态成员, 但是在非静态内部类中不可以声明静态成员
  • 静态内部类不可以访问外部类的实例成员, 只能访问类成员, 因为是完全独立的两个类
  • 内部类被当成外部类成员, 但外部类不能访问内部类的实现细节, 必须通过new关键字访问
  • 通过new Inner.Outer()来调用

#局部内部类

  • 局部内部类就是定义在外部类的方法中, 方法内部类只在该方法内可以用
  • 局部内部类不能使用访问控制符和static修饰符, 只能访问final关键字修饰符的变量
posted @ 2020-05-19 22:02  CyberPelican  阅读(119)  评论(0编辑  收藏  举报