目录
1.什么是内部类?
内部类是定义在类中的类。
2.内部类什么时候使用?
(1)当一个类和另一个类联系比较密切,都定义成独立的类的话,不但类的数量增加,还会增加我们阅读的难度,不便于维护
(2)内部类可以访问外部类的私有属性,这样可以将相关的类和接口隐藏在外部类的内部,提高了封装性
(3)匿名内部类是没有名字的内部类,通常定义一个只使用一次的类,比如用于处理事件中
3.内部类的分类
(1)静态内部类
静态内部类怎么实例化:OuterClassInnerClass innerclass =
new OuterClass.InnerClass();
静态内部类无法直接访问实例变量和实例方法
静态内部类的访问控制权限有四种:private, 缺省, protected, public
(2)实例内部类
实例内部类怎么实例化:OuterClass.InnerClass innerClass =
new OuterClass().new InnerClass();
实例内部类可以直接访问实例变量,实例方法,静态变量,静态方法
实例内部类的访问控制权限有四种:private, 缺省, protected, public
(3)局部内部类
局部内部类在访问外部类中的局部变量时,这个局部变量必须要有final修饰(在JDK8之后,不需要我们手动提供final了,系统会自动提供)
局部内部类不能被访问权限修饰符修饰
(4)匿名内部类
匿名内部类:没有名字的内部类,通常定义一个只使用一次的类
匿名内部类的使用,跳转至:匿名内部类的使用