Java 枚举简介

本文介绍了Java中的枚举特性,包括枚举类的定义、注意事项(如实例顺序和赋值规则),以及如何在switch语句中使用枚举表示状态机和实现策略模式。还提到了EnumSet和EnumMap的使用以及枚举类的线程安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是枚举?(熟悉)

enum(枚举) 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。在Java中,通过关键字enum来定义枚举类。枚举的本质是java.lang.Enum 的子类。枚举类是一种特殊类,它和普通类一样可以使用构造器、定义成员变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类。枚举的提出是为了将常量组织起来,进行统一管理。枚举的典型应用场景为:错误码、状态机等。

枚举定义形式如下:

enum Color {
    RED, GREEN, BLUE; }
//注:如果枚举中没有定义方法,也可以在最后一个实例后面加逗号、分号或什么都不加。

枚举使用时的注意事项(熟悉)

  • 在enum中,必须先定义实例,不能将字段或方法定义在实例前面。否则,编译器会报错。因此,如果要为enum定义方法,那么必须在enum的最后一个实例尾部添加一个分号。
  • Java 不允许使用 = 为枚举常量赋值
  • enum 可以像一般类一样实现接口,但enum 不可以继承另外一个类(已经默认继承Enum),当然,也不能继承另一个 enum 。

switch 状态机的使用(掌握)

JDK7以后,switch已经支持 int、char、String、enum 类型的参数。我们可以使用switch语句来写状态机。代码如下:

Week value = valueOf("MONDAY");
//switch 状态机的使用
switch (value) {
   
    case MONDAY:
        System.out.println("星期一");
        break;
    case TUESDAY:
        System.out.println("星期二");
        break;<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值