亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

精通 Java 匿名内部类:定义、语法与实战示例

精通 Java 匿名内部类

通过清晰的真实案例,学习如何定义、实现和利用 Java 匿名内部类。

Java 中类可嵌套另一类 —— 内部类。当该内部类无显式名称时,称为匿名内部类。

匿名内部类在另一类或表达式内联定义。因无名称,仅在包围代码运行时创建,适合简短、一次性的实现。

典型模式:

class OuterClass { // 创建匿名内部类实例 Type instance = new Type(parameters) { // 重写方法或额外行为 }; } 

此处 Type 可以是:

  1. 匿名类扩展的超类
  2. 匿名类实现的接口

运行时,上述语句构建匿名类实例,可通过声明的引用类型使用。

重要: 因声明是表达式,结束分号终止语句,而非类体。


示例 1:用匿名内部类扩展类

class Polygon { public void display() { System.out.println("Inside the Polygon class"); } } class AnonymousDemo { public void createClass() { Polygon p1 = new Polygon() { @Override public void display() { System.out.println("Inside an anonymous class."); } }; p1.display(); } } public class Main { public static void main(String[] args) { new AnonymousDemo().createClass(); } } 

输出

Inside an anonymous class.

此例中匿名类扩展 Polygon 并重写 display()。createClass() 运行时创建匿名子类实例,调用其重写方法。


示例 2:用匿名内部类实现接口

interface Polygon { void display(); } class AnonymousDemo { public void createClass() { Polygon p1 = new Polygon() { @Override public void display() { System.out.println("Inside an anonymous class."); } }; p1.display(); } } public class Main { public static void main(String[] args) { new AnonymousDemo().createClass(); } } 

输出

Inside an anonymous class.

此处匿名类实现 Polygon 接口,在单一简洁块中提供所需方法实现。


为何使用匿名内部类?

匿名内部类在需简短、上下文特定实现的场景大放异彩:

优势包括:

对于更大、可复用的逻辑,考虑命名类或 Lambda 表达式(针对函数式接口)以保持代码可维护。

java

  1. 深入理解 Java final 关键字:变量、方法与类的不可变性
  2. Java instanceof 运算符完全指南:用法、继承与接口检查
  3. 精通 Java 继承:核心概念、类型与实战示例
  4. 深入理解 Java 静态嵌套类:用法、差异与实战示例
  5. Java 单例模式详解:安全实现与使用指南
  6. 精通 Java 反射:运行时检查类、方法与字段
  7. 精通 Java ArrayList:操作、方法与最佳实践
  8. Java Stack 类全面指南:用法、核心方法与实战示例
  9. Java HashSet 类完全指南:操作、方法与集合论实战
  10. 掌握 Java ObjectOutputStream:序列化、核心方法与实战示例
  11. 掌握 Java 泛型:构建可复用、类型安全的代码
  12. 掌握 Java 文件操作:java.io 包下的创建、读取、写入与删除