024-内部类

声明:我的所有文章,都是对网上教学视频的整理,包括狂神说、尚硅谷、黑马程序员等等,用来作为参考资料,无任何商业使用,请广大网友参考,不喜勿喷,谢谢。(注意,由于网站的原因,有些代码字符可能会出现问题,建议大家阅读代码时,最好和下面的图片对应来看)
一、引入
当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类。
二、定义
在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。
Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称, Inner class的名字不能与包含它的外部类类名相同。
分类:成员内部类(static成员内部类和非static成员内部类)、局部内部类(不谈修饰符)、匿名内部类
三、成员内部类作为类的成员的角色
1、和外部类不同,Inner class 还可以声明为private或protected
2、可以调用外部类的结构
3、Inner class可以声明为static的,但此时就不能再使用外层类的非static的成员变量
四、成员内部类作为类的角色:
1、可以在内部定义属性、方法、构造器等结构
2、可以声明为abstract类,因此可以被其它的内部类继承
3、可以声明为final
4、编译以后生成OuterClass$InnerClass.class字节码文件(也适用于局部内部类)
五、注意
1、非static的成员内部类中的成员不能声明为static的,只有在外部类或static的成员内部类中才可以声明static成员
2、外部类访问成员内部类的成员,需用“内部类.成员”或“内部类对象.成员”的方式
3、成员内部类可以直接适用外部类的所有成员,包括私有的数据
4、当想要在外部类的静态成员部分适用内部类时,可以考虑内部类声明为静态的
六、示例一
024-内部类
七、示例二
024-内部类

猜你喜欢

转载自blog.51cto.com/12859164/2564207