匿名 class 与 Java 中的其他 class 有何不同?

How Anonymous class different from other classes in Java?

我知道 Anonymous class 没有名字。 它在Simple classes.But中的使用不止于此,Anonymous classes与我们使用的Simple classes有何不同?

它们主要用于UI程序中处理事件。如果您的 class/interface 有一点功能,那么您可以将它嵌入到现有的 class 中,而不是为其创建新文件。您可以在 https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html.

上找到详细说明

匿名 class 与本地 class 相同,只是它们没有名称。
它们是表达式而不是声明。因此它将成为状态的一部分(即创建对象的语句,因此我们在匿名 class 定义之后放置一个分栏)。如果只需要使用一次,可以使用匿名 class。

要点:

  1. 您不能在其中声明构造函数。

  2. 可以访问封闭 class 的所有 class 级变量,并且只能访问最终局部变量。

  3. 不能声明静态初始值设定项,但也可以有声明为 final 的静态变量。

在 Java 8 中,lambda 具有与匿名 classes 相似的语法,如果您需要无状态实现,它们可以替换匿名 classes。