5.内部类
Posted river111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.内部类相关的知识,希望对你有一定的参考价值。
- 什么是内部类
- 将一个类的定义放在另一个类的内部,这就是内部类,原来的类称为外部类
- 分类(根据定义的位置与方式)
- 成员内部类:定义在类的内部
- 局部内部类:定义在一个方法或一个作用域里,相当于一个局部变量
- 匿名内部类:在需要实例化内部类的地方定义它(通常在方法体内,或参数中)
- 静态内部类:定义在类的内部,在类的前面多一个关键字static
- 内部类的作用
- 每个内部类都能独立的继承一个(接口的)实现,与外部类没关系
- 接口只解决了部分问题,而内部类的存在使得Java的多继承机制变得更加完善(允许继承多个非接口类型[类或抽象类)
- 图示
- 如何使用内部类
- 成员内部类
- 定义语法:同java的类
说明
1) 内部类可访问外部类的所有属性和方法
1)
2) 内部类中访问的成员与外部类成员名称相同时的访问方式
1) 默认访问的是内部类成员
2) 使用:外部类名.this.成员(变量/方法)来访问外部类成员
3) 图解3) 内部类拥有更多的访问权限
1) 外部类只有:public和默认的访问权限(包的访问权限)
2) 内部类其实是外部类的成员所以额外拥有:private,public的访问权限
3) 图解4) 外部类如何访问内部类中成员
1) 创建内部类实例,然后通过实例来访问内部类成员
- 局部内部类
- 定义语法:同java的类
- 说明
1) 不能有public,protected,private,static修饰符
2) 图解
- 匿名内部类
- 定义语法
new 外部类名(){
匿名内部类代码
}; 说明
1) 注意点2) 用在方法中
1)
3) 用在参数中(监听效果时可用此编码风格)
- 定义语法
- 静态内部类
- 定义语法:static class 类名{}
- 说明
1) 静态内部类可直接创建实例
1) 对静态内部类成员的访问不再需要外部类,用它直接创建对象即可
2) 静态内部类可访问外部类的静态成员
3) 图解
1)
- 成员内部类
- 内部类在那些地方用
- 方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏
- 方便编写事件驱动程序
- 方便编写线程代码
- 关于内部类的笔试题
- 题1
- 内容
1) - 分析
1) - 答案
1)
- 内容
- 题2
- 题3
1和2的写法正确吗?有区别吗?说出原因
1)2)
- 题1
以上是关于5.内部类的主要内容,如果未能解决你的问题,请参考以下文章
20165330 2017-2018-2 《Java程序设计》第5周学习总结