匿名 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。
要点:
您不能在其中声明构造函数。
可以访问封闭 class 的所有 class 级变量,并且只能访问最终局部变量。
不能声明静态初始值设定项,但也可以有声明为 final 的静态变量。
在 Java 8 中,lambda 具有与匿名 classes 相似的语法,如果您需要无状态实现,它们可以替换匿名 classes。
我知道 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。
要点:
您不能在其中声明构造函数。
可以访问封闭 class 的所有 class 级变量,并且只能访问最终局部变量。
不能声明静态初始值设定项,但也可以有声明为 final 的静态变量。
在 Java 8 中,lambda 具有与匿名 classes 相似的语法,如果您需要无状态实现,它们可以替换匿名 classes。