Java第九周学习总结:内部类与注解(1)
Java第九周学习总结:内部类与注解
经过前几周对 Java 面向对象核心内容的学习,我已经掌握了类、对象、继承、多态、方法重写等基础知识点。本周课程主要学习内部类和注解两大内容,它们是面向对象知识的延伸,能够优化代码结构、提升代码规范性,也为后续 Java 高阶内容和框架学习打好基础。相较于基础语法,这部分内容更侧重实际开发中的代码简化与约束,本周我结合课堂内容完成了代码练习,下面对知识点、实操问题进行完整复盘。
内部类指定义在另一个类(外部类)内部的类,它可以实现更精细的封装。内部类能直接访问外部类的私有成员,而外部无法直接访问内部类,适合将功能关联的代码整合在一起,让程序逻辑更加紧凑。
根据定义位置、修饰符和使用形式,内部类分为成员内部类、静态内部类、局部内部类、匿名内部类四类。
- 成员内部类
定义在外部类中、方法之外,属于外部类的实例成员,不能使用 static 修饰。
- 访问规则:可直接调用外部类所有属性和方法(包括私有);外部类想要使用内部类成员,必须先创建内部类对象。
- 创建对象:需要依托外部类实例来创建。
示例代码:
java |
- 静态内部类
被static修饰的成员内部类,属于外部类的静态成员,不依赖外部类对象。
- 访问规则:仅能访问外部类的静态成员,无法调用实例属性和实例方法。
- 创建对象:无需先创建外部类对象,可直接独立实例化,使用起来更加简便。
- 局部内部类
定义在方法、代码块或循环内部的类,作用域仅限于当前代码段。
- 限制:只能使用默认访问权限,不能添加public、private、static等修饰符;出了所在方法 / 代码块后,该类就无法使用。
- 匿名内部类
本周学习的重点,也是实际开发中使用频率最高的一种内部类。它没有类名,属于局部内部类的特殊形式,常用来快速实现接口或继承抽象类,省去单独定义实现类的步骤,大幅简化代码。
- 特点:一般只使用一次,适合临时重写方法、快速完成功能实现。
注解是标注在代码上的特殊标记,用于对代码进行说明、约束和校验。它本身不会影响程序运行,主要为编译器、JVM 以及后续框架提供参考依据,是规范代码编写的重要工具。
- Java 三大基础内置注解
- @Override:标注在重写的方法上,编译器会自动校验方法格式,判断是否符合重写规则,避免因方法名、参数列表写错导致重写失效。
- @Deprecated:标记已过时的方法、类或属性,提示开发者该内容不建议继续使用。
- @SuppressWarnings:用于压制编译警告,可清除未使用变量、冗余代码等带来的黄色警告,让代码界面更整洁。
- 元注解(基础了解)
元注解是用来修饰自定义注解的注解,常用的有四种:
- @Target:限定注解可以标注的位置(类、方法、变量等);
- @Retention:设置注解的保留生命周期(源码阶段、编译阶段、运行阶段);
- @Documented:使用该注解后,自定义注解会被提取到 API 文档中;
- @Inherited:表示子类可以继承父类上的该注解。
结合本周所学内容,完成了成员内部类、静态内部类、匿名内部类以及基础注解的实操练习,以下是典型案例。
java |
无需单独创建接口实现类,借助匿名内部类快速重写接口方法,是日常开发的常用写法:
java |
java |
- 成员内部类实例化格式记混
刚开始经常写错创建对象的代码,分不清成员内部类和静态内部类的实例化区别。后来总结规律:成员内部类依赖外部类实例,格式为外部类.内部类 对象 = new 外部类().new 内部类();静态内部类直接外部类.内部类 对象 = new 外部类.内部类(),反复练习后逐渐熟练。 - 匿名内部类理解困难
一开始不理解为什么不需要类名就能使用,后来通过多次手写代码练习,明白它的核心作用就是临时使用、简化代码,多用于接口和抽象类的快速实现,慢慢掌握了使用场景。 - 注解作用混淆
初期分不清三个基础注解的用途,通过在代码中逐个添加、观察编译提示,分清了@Override用于校验重写、@Deprecated标记过时内容、@SuppressWarnings消除警告,能够根据需求正确使用。
本周学习的内部类和注解,是 Java 面向对象知识的重要拓展。内部类让类的划分更加灵活,封装性更强,尤其是匿名内部类,在简化代码方面作用突出;注解则规范了代码编写,减少开发中的低级错误。
目前我已经掌握了基础用法,但对于局部内部类、自定义注解的复杂用法还不够熟练。接下来我会多做课后习题,结合实际场景练习代码,巩固本周知识点。同时提前预习下一阶段内容,稳步推进 Java 学习。

浙公网安备 33010602011771号