枚举类型小谈

一、什么是枚举类型,它如何使用?

1.1 在Java等一些编程语言中,枚举类型是一种基本数据类型。

1.2 它用于定义一组固定的命名常量,当一个变量有几种可能的取值时,可以将它定义为枚举类型。

在Java中,

二、枚举的意义与书写格式

2.1枚举的意义:

1、可使代码更易读、易理解、易于维护。

2、有限的实例集合:枚举类型是一种有限的实例集合,每个实例都是该枚举类型的一个唯一的、已命名的常量。

3、类型安全:枚举类型在编译时进行静态类型检查,这意味着编译器可以检测到在使用枚举常量时的类型错误。

4、序列化支持:枚举类型默认实现了Serializable接口,可以被序列化和反序列化。这使得可以在网络传输、存储和持久化等场景下使用枚举类型。

2.2枚举的书写格式

例如: 

public enum ServiceCode {

    /**
     * 成功
     */
     OK(20000),

    /**
     * 错误:请求参数格式有误
     */
    ERR_BAD_REQUEST(40000);
}

其中:public :访问修饰符,可公共访问,也可省略;

           enum:关键字,声明枚举类型

           枚举类型名称(ServiceCode):符合Java类取名规范--大驼峰命名

           OK、ERR_BAD_REQUEST等是枚举常量,用逗号分隔。每个枚举常量都是枚举类型的实例。

三、如何使用枚举类型

3.1在枚举类型中,可以定义字段和方法。例如,为每个枚举常量定义特定的属性和行为:

public enum ServiceCode {
    
    /**
     * 错误:禁止访问,无此操作权限
     */
    ERR_FORBIDDEN(40300),
    /**
     * 错误:数据不存在
     */
    ERR_NOT_FOUND(40400),
    /**
     * 错误:数据冲突
     */
    ERR_CONFLICT(40900);

    private Integer value;

    ServiceCode(Integer value) {
        this.value = value;
    }

    public Integer getValue(){
        return value;
    }
}

上述示例中的ServiceCode枚举类型包含了三个枚举常量,每个常量都具有一个名为value的字段和一个返回该字段值的getValue()方法。

通过这种方式,可以创建具有特定常量和自定义属性、行为的枚举类型。

3.2 枚举类型的常用方法

方法用途
name()获取枚举常量的名称
ordinal()获取枚举常量的序号
values()获取枚举类型中所有的枚举常量
valueOf(String name)根据枚举常量的名称获取对应的枚举常量
toString()返回枚举常量的字符串表示
自定义字段和方法枚举常量可以拥有自定义的字段和方法,用于提供特定的属性和行为

3.3 使用案例

创建一个枚举类 TestEnum,其中包含了三个枚举常量 REDGREEN 和 BLACK。以下是该示例枚举类的说明和代码分析:

public enum TestEnum {
    RED("RED", 1),
    GREEN("GREEN", 2),
    BLACK("BLACK", 3);

    private String color;
    private int ori;

    // 构造方法
    private TestEnum(String color, int ori) {
        this.color = color;
        this.ori = ori;
    }

    // 主方法
    public static void main(String[] args) {
        TestEnum[] values = TestEnum.values();
        for (TestEnum value : values) {
            System.out.println(value + " ori: " + value.ordinal());
        }

        System.out.println(".....................");

        System.out.println(TestEnum.valueOf("RED"));
        System.out.println(".....................");
        System.out.println(RED.compareTo(BLACK));
        System.out.println(BLACK.compareTo(GREEN));
    }
}

在这个示例中,TestEnum 枚举类具有以下特点和代码说明:

  1. 枚举常量:RED、GREEN 和 BLACK 是枚举类 TestEnum 的三个实例化对象,它们是唯一的、已命名的常量。
  2. 构造方法:枚举类的构造方法默认是私有的,只能在枚举类内部使用。在这个示例中,使用私有构造方法来为每个枚举常量设置对应的颜色和原始值。
  3. values() 方法:这个示例在 main() 方法中使用 TestEnum.values() 方法获取 TestEnum 枚举类中的所有枚举常量,并进行遍历输出。
  4. valueOf(String name) 方法:通过 TestEnum.valueOf("RED") 可以获取枚举常量名为 “RED” 的枚举对象。
  5. ordinal() 方法:枚举常量的 ordinal() 方法返回它们在枚举类型中定义的顺序值(从0开始)。
  6. compareTo() 方法:通过 RED.compareTo(BLACK) 和 BLACK.compareTo(GREEN) 可以比较两个枚举常量的顺序,返回一个整数值。
  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值