内部类
- 基本介绍
一个类内部又完整的嵌入了另一个类结构。被嵌套的类称为内部类,嵌套的其他类成为外部类。
类的五大成员:[属性、方法、构造器、代码块、内部类]
内部类可以直接访问私有属性。
- 内部类分类
-定义在外部类局部位置上(比如方法内):
- 局部内部类(有类名)
- 匿名内部类(没有类名,重点
- 定义在外部类的成员位置上:
- 成员内部类(没有用static修饰)
- 静态内部类(使用static修饰)
-细节
说明:局部内部类时定义在外部类的局部位置,比如方法中,并且有类名。
- 可以直接访问外部类的所有成员,包含私有的
- 不能添加访问修饰符,因为它的地位就是一个局部变量。局部变量时不能使用修饰符的。但是可以使用final
- 作用域:仅仅在定义它的方法或代码块中。
- 局部内部类--访问--->外部类的成员[访问方式:直接访问]
- 外部类--访问--->局部内部类的成员 访问方式:创建对象,再访问(注意:必须在作用域中)
记住: (1)局部内部类定义在方法中/代码块
(2)作用域在方法体或者代码块中
(3)本质仍然是一个类
6. 外部其他类--不能访问--->局部内部类(因为局部内部类地位是一个局部变量)
7. 如果外部类和局部内部类的成员重合时,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类.this.成员)去访问
匿名内部类
- 本质是类
- 内部类
- 该类没有名字
- 同时还是一个对象
说明:匿名内部类定义在外部类的局部位置,如方法
语法 new 类或接口(参数列表){
类体
}
类外访问成员内部类:
outer10.inner10 inner10 = outer10.new inner10();
inner10.say();
类外访问静态成员内部类
outer10.inner10 inner10 = new outer10.inner10();
inner10.say();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)