Java枚举类(Enum)的使用及特性

什么是枚举类?

在Java中,枚举类(Enum)是一种非常有用的数据类型,它允许我们定义一个固定数量的具名值。在计算机编程中,"enum"是一个关键字,在Java语言里被称为“Enumeration”。它们通常指代一组相关联、已命名和有限列出明确数目元素。这些元素可以看作事先被定义好并静态存储于某个容器内。换句话说,“enum”提供了对现实生活实体或逻辑概念进行建模的能力。

枚举类中的常用方法

  • values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。
  • valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。
  • toString():返回当前枚举类对象常量的名称

枚举类的使用

创建一个简单的枚举类型:

下面我们来创建一个示例——星期几(Weekday),展示如何声明和使用基本级别上最简单、最原始形式type-safe enum。

public enum Weekday {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY;
}

以上代码片段表示星期一到星期五共5个选项/值。

调用方式:

Weekday today = Weekday.MONDAY;
System.out.println("Today is " + today);  // 输出 Today is MONDAY

添加额外信息:

每个项目可能需要存储更多的数据与每个Enum实例相关联。此时,可以为每个枚举项添加字段和方法。 

public enum Weekday {
    MONDAY("Monday", true),
    TUESDAY("Tuesday", false),
    WEDNESDAY("Wednesday", false),
    THURSDAY("Thursday", false),
    FRIDAY("Friday", true);

  private final String displayName;
  private final boolean isWorkingDay;

  Weekday(String displayName, boolean isWorkingDay) {
      this.displayName = displayName;
      this.isWorkingDay = isWorkingDay;
  }

   public String getDisplayName() { return displayName; }
   public boolean isWorking() { return isWorkingDat;}
}

在上述示例中,我们为Weekday枚举类添加了两个额外的字段:displayName(显示名称)和isWoring(是否工作日)。并创建了构造函数用于初始化这些字段。

调用方式:

Weekday today = Weekdaay.MONDAY;
System.out.println(today.getDisplayName()); // 输出 Monday
System.out.println(today.isWorkinig());     // 输出 ture 

迭代遍历enum实例:

有时候我们需要遍历整个enum类型,并对它们做某种处理。Java提供了一个便捷的方式来完成此任务。 

for (Weelday day : Weeldy.values()) {
    System.out.print(day + " ");          // 输出所有星期几:MONDAT TUESTAY WENDNDAT THUSSTTHAY FROFATY    
}

 枚举类的好处

  1. 枚举类可以通过使用关键字"enum"来声明,并列出其具体选项。这些选项可以看作提前定义好并静态存储在容器中。

  2. 枚举实例之间使用逗号分隔,以分号结尾。

  3. 可以通过点表示法调用枚举实例:EnumName.EnumInstance。例如:Weekday.MONDAY代表星期一。

  4. 构造方法、字段和方法都可以被添加到枚举示例中,使得每个示例能够存储额外信息或执行特定操作。

  5. 使用.values()方法遍历整个enum类型,并对每个enum实例做处理。

  6. 对于需要有限集合数目元素进行建模、命名时,尤其适合使用枚舠除了增强可读性外,在编译期间还能进行静态检查确保安全编程。

总结

 

  • 枚举类是一种非常方便、灵活,且易于维护的数据类型。
  • 定义枚举类可以避免使用一堆飘忽不定、随意变化的常量,使代码更加清晰。
  • 枚举类可以包含字段和方法,为每个enum实例提供额外信息或行为。
  • 使用枚举类型能够增强代码可读性,并在编译期间进行静态检查。

  通过Java中Enum这一特性(feature)的应用示例及其详细解释,相信您已经对Java中如何正确地定义、使用以及遍历一个简单enum有了初步了解。合理利用枚举类将大大提高你程序开发效率。
  感谢您阅读本文。如果您对本文内容有任何疑问、意见或建议,欢迎在评论区留言!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值