每个Java开发人员应该了解关于枚举的18点特性
temp10 2024-09-25 21:10:34 java教程 8 ℃ 0 评论
- 即使用UPPERCASE字母声明枚举常量也不是强制性的,但最佳做法是这样做。
- 枚举类型(如类)可以包含字段,构造函数和方法以及枚举常量。
- 枚举构造函数默认是私有的。枚举类型中只允许使用私有构造函数。这就是为什么你不能使用new运算符实例化枚举类型。
- 枚举常量只为整个执行创建一次。当您最初在代码中引用任何枚举常量时,将创建所有枚举常量。在创建每个枚举常量时,会调用相应的构造函数。
- 必须在字段,构造函数和方法(如果有)之前声明枚举常量。
- 默认情况下,所有枚举类型都扩展 java.lang.Enum类。由于Java不支持多重继承,因此它们无法扩展到任何其他类。
- 枚举类型可以实现任意数量的接口。
- 枚举常量可以有自己的主体,称为Constant Specific Body。在该主体中,您可以定义字段和方法。但是,这些方法和字段在定义它们的常量特定体中是可见的。
- 枚举类型默认为final。它们不能被任何其他类型扩展。
- 对于写入文件的每个枚举类型,.class 将在编译后生成该 文件。
- 枚举类型可以包含任意数量的静态初始化块 以及实例初始化块。
- 由于 java.lang.Enum 该类实现了Comparable 和 Serializable 接口,因此默认情况下所有枚举类型都是Comparable和Serializable。
- 我们可以使用== 运算符比较枚举常量 。
- 您可以使用该values() 方法检索任何枚举类型的枚举常量 。该 values() 方法返回一个枚举常量数组。
- 枚举在编译期间提供类型安全性。这意味着如果您尝试分配除指定的枚举常量之外的任何值,您将收到编译时错误。
- 您可以在类外或类内定义枚举类型,但不能在方法或块内定义。
- 该 ordinal() 方法用于获取枚举类型中枚举常量的顺序。
- 当您希望允许有限的一组选项在整个执行过程中保持不变并且您在编译时知道所有可能的选项时,主要使用枚举。例如,这可以是 菜单上的选项或组合框的选项。
本文暂时没有评论,来添加一个吧(●'◡'●)