外部类、内部类以及匿名内部内
"纸上得来终觉浅,绝知此事要躬行"
目录
1、外部类
2、内部类:
note:
以下所称的外部类是相对于本类内部的类来说的,并不是上面所说的外部类!!
在本类的内部进行其他类结构的嵌套操作
- 可以被访问权限修饰符修饰
- 内部类能放啥??
不能放静态方法,可以继承,可以实现接口,静态的东西写不了!!! - 静态内部类能放啥?? 非静态结构、静态结构也能放(包括main方法)
2.1 实例内部类
2.2 静态内部类
2.3 内部类实例创建
// 测试类
2.3.1 实例内部类造对象
Inner inner = new Inner(); ---报错!!!
2.3.2 静态内部类造对象
2.2 内部类的访问特点
- 内部类的方法里可以直接访问外部类的成员,包括私有成员
- 外部类要访问内部类成员,必须要建立内部类对象
例如:
3、匿名内部类
就是内部类的简化
它的本质就是一个父类或负接口的匿名子类实现
3.1 使用前提
这个类必须继承一个父类或实现一个父接口
3.2 在哪用
当使用接口,先定义一个接口,接下来
- 定义接口实现类(子类)
- 在子类中重写接口抽象方法
- 创建实现类对象
- 调用重写的后方法
匿名内部类就是把这四步合一了 !!!
3.3 长啥样
点击查看代码
new 父类名或接口名(){
//方法重写
@Override
pubilc void methd(){
//执行语句
}
};
3.4 使用
3.5 注意事项:
- 匿名内部类不能定义静态成员。
- 匿名内部类不能再抽象方法
因为它自己就是实现抽象类的
4、局部内部类
定义在方法或代码块中
导图
分类:
java基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY