文章

【读书笔记】《java从小白到大牛》枚举类

枚举类型可以避免直接使用常量所导致的问题。Java 5之后可以使用枚举类型了,Java中枚举类型的作用已经不仅仅是定义一组常量提高程序的可读性了,还具有如下特性:

  • 01. Java枚举类型是一种类,是引用类型,具有了面向对象特性,可以添加方法和成员变量等。
  • 02. Java枚举类型父类是java.lang.Enum,不需要显式声明。
  • 03. Java枚举类型可以实现接口,与类实现接口类似。
  • 04. Java枚举类型不能被继承,不存在子类。

Java中是使用enum关键词声明枚举类,具体定义放在一对大括号内,枚举的语法格式如下

[public] enum 枚举名 {
    枚举常量列表
}

enum前面的修饰符是[public]表示public或省略。public是公有访问级别,可以在任何地方访问。省略是默认访问级别,只能在当前包中访问。“枚举名”是该枚举类的名称。它首先应该是有效的标识符,其次应该遵守Java命名规范。它应该是一个名称,如果采用英文单词命名,首字母应该大写,且应尽量用一个英文单词。“枚举常量列表”是枚举的核心,它由一组相关常量组成。

  • 枚举类可以像类一样包含成员变量和成员方法,成员变量可以是实例变量也可以是静态变量,成员方法可以是实例方法,也可以是静态方法,但不能是抽象方法。
  • 在类中成员变量的初始化是通过构造方法实现的,而在枚举类中也是通过构造方法初始化成员变量的。
  • 私有构造方法经常用于单例设计模式和工厂设计模式,使得不允许在类的外边直接调用构造方法创建对象。枚举类实现类似于工厂设计模式

枚举常用方法

所有枚举类都继承java.lang.Enum类,Enum中定义了一些枚举中常用的方法:

  • int ordinal():返回枚举常量的顺序。这个顺序根据枚举常量声明的顺序而定,顺序从零开始。
  • 枚举类型[] values():静态方法,返回一个包含全部枚举常量的数组
  • 枚举类型 valueOf(String str):静态方法,str是枚举常量对应的字符串,返回一个包含枚举类型实例。

许可协议:  CC BY 4.0