【Java学习笔记】内部类
来源:互联网 发布:原油api数据公布网站 编辑:程序博客网 时间:2024/06/05 05:09
内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。 内部类可以是静态static的,也可用public,default,protected和private修饰。
外部顶级类即类名和文件名相同的只能使用public和default。
注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。所以内部类的成员变量/方法名可以和外部类的相同。
1. 成员内部类
成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。
要注意的是,成员内部类不能含有static的变量和方法。因为成员内部类需要先创建了外部类,才能创建它自己的,了解这一点,就可以明白更多事情,在此省略更多的细节了。
在成员内部类要引用外部类对象时,使用outer.this来表示外部类对象;
而需要创建内部类对象,可以使用outer.inner obj = outerobj.new inner();
2.局部内部类 局部内部类,是指内部类定义在方法和作用域内。
局部内部类也像别的类一样进行编译,但只是作用域不同而已,只在该方法或条件的作用域内才能使用,退出这些作用域后无法引用的。
3. 嵌套内部类
嵌套内部类,就是修饰为static的内部类。声明为static的内部类,不需要内部类对象和外部类对象之间的联系,就是说我们可以直接引用outer.inner,即不需要创建外部类,也不需要创建内部类。
嵌套类和普通的内部类还有一个区别:普通内部类不能有static数据和static属性,也不能包含嵌套类,但嵌套类可以。而嵌套类不能声明为private,一般声明为public,方便调用。
4. 匿名内部类
有时候我为了免去给内部类命名,便倾向于使用匿名内部类,因为它没有名字。可以参考线程的实现方式。
阅读全文
0 0
- java学习笔记-内部类
- [学习笔记]Java内部类
- Java内部类学习笔记
- java内部类学习笔记
- java内部类学习笔记
- Java学习笔记【内部类】
- 【Java学习笔记】内部类
- java内部类学习笔记
- java内部类学习笔记
- java 内部类 学习笔记
- Java内部类学习笔记
- java内部类学习笔记
- java内部类 学习笔记
- 【Java学习笔记】内部类
- Java学习笔记之局部内部类
- 【Java】学习笔记——内部类
- JAVA内部类学习笔记01
- java培训笔记23---内部类学习
- p2p项目总结
- mysql日期时间操作函数详解
- 【SpringMVC】文件上传Expected MultipartHttpServletRequest: is a MultipartResolver错误解决
- Testing Round #14 (Unrated) A
- POJ 刷题系列:1860. Currency Exchange
- 【Java学习笔记】内部类
- 牛客网 Wannafly挑战赛6 逆序对(思路)
- 在IAR中的workspace增加下载代码选项
- Service Mesh 现在如此火热,你了解多少?
- TensorFlow RNN 文本情感分析
- Presto-[12]-Syntax-EXPLAIN
- label和span标签设置宽度width无效问题的解决方式
- Testing Round #14 (Unrated) B
- Nginx 常用配置文件说明