151
社区成员
发帖
与我相关
我的任务
分享一、引言
内部类是Java类中嵌套类的特殊语法,种类多、概念易混,是期末选择、判断、代码填空题高频考点。
二、内部类核心概念
定义在类的内部的类,统称为内部类。
外部类是外层容器,内部类依附外部类存在,
可以访问外部类所有成员,包括私有成员。
三、内部类四大分类
1. 成员内部类(非静态)
2. 静态内部类(static修饰)
3. 局部内部类(方法/代码块内)
4. 匿名内部类(无类名,简化写法)
四、成员内部类
定义在类中、方法外,无static修饰
1. 属于外部类的实例成员
2. 依赖外部类对象才能创建
3. 可直接访问外部类私有属性和方法
4. 不能定义静态成员常量以外的静态内容
5. 可用private、protected、public、默认权限修饰
五、静态内部类
static修饰的成员内部类
1. 属于类级别,不依赖外部类对象
2. 只能访问外部类静态成员
3. 可独立创建对象,使用更简洁
4. 常用来做工具类、数据结构封装
六、局部内部类
定义在方法、代码块、构造方法内部
1. 作用域仅限当前方法内部,外部无法访问
2. 可以访问外部类所有成员
3. 只能访问所在方法final或等效final局部变量
4. 不能使用public、private、static修饰
七、匿名内部类
没有类名的局部内部类,语法简写
1. 继承一个父类 或 实现一个接口
2. 直接创建对象同时重写方法
3. 只用一次,无需单独定义子类
4. 常用于线程、接口回调、快速重写方法
5. 不能定义构造方法,没有类名
八、内部类访问特点
1. 内部类可直接访问外部类所有成员(含private)
2. 外部类访问内部类需要创建内部类对象
3. 内外类成员重名时,就近原则优先本层
4. 静态内部类隔离外部类非静态成员
九、内部类优缺点
优点
- 可以隐藏类,对外隐藏实现细节
- 方便访问外部类私有成员,封装性更强
- 简化代码写法,匿名内部类省去单独建类
- 逻辑关联强的类放在一起,结构更紧凑
缺点
- 层级复杂,初学者不易理解
- 编译后产生多个class文件,占用资源
- 嵌套过深可读性变差
十、新手高频易错汇总
1. 混淆静态内部类和非静态内部类创建方式
2. 非静态内部类中定义静态成员编译报错
3. 局部内部类误用权限修饰符
4. 匿名内部类误以为可以写构造方法
5. 分不清静态内部类能否访问外部类非静态
十一、全文学习总结
四种内部类各有定义位置、访问权限、创建规则和使用场景,核心记住:非静态依赖外部对象、静态不依赖、局部仅限方法内、匿名无类名一次性使用。吃透访问规则、权限限制、创建方式,轻松搞定期末所有内部类选择题和代码分析题。