Java — 枚举

2022/5/10 17:00:33

本文主要是介绍Java — 枚举,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • 一、枚举简介
  • 二、枚举作用
  • 三、枚举实现接口

一、枚举简介

枚举是 JDK5 中引入的特性,由 enum 关键字来定义一个枚举类。

格式:

enum 枚举类名 {
    枚举项1, 
    枚举项2, 
    ...;
    
    成员变量;
    构造方法
    成员方法
}

说明:

  1. 每个枚举类型隐式继承 java.lang.Enum ,所以枚举类不能再继承其它类。
  2. 枚举项就是枚举类型的静态常量对象(实例),通过 枚举类型.枚举项名称 访问指定的枚举项。
  3. 枚举项命名一般使用大写字母,多个枚举项用英文逗号隔开,以英文分号结束。
  4. 枚举类型的构造方法需要私有化,成员变量只提供 get 方法。

二、枚举作用

一些程序在运行时需要的数据不能是随意的,必须是一定范围内的值。也就是统一管理一些常量。
JDK5 之前采用自定义类来解决,JDK5 之后可以直接采用枚举解决。

示例:

// JDK5之前自定义性别枚举
public class CustomSexEnum {

    public static final CustomSexEnum man = new CustomSexEnum(1, "男");
    public static final CustomSexEnum woman = new CustomSexEnum(2, "女");

    private Integer code;
    private String desc;

    private CustomSexEnum() {
    }

    private CustomSexEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public Integer getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }
}
// JDK5之后定义性别枚举
public enum SexEnum {

    man(1, "男"),
    woman(2, "女");

    private Integer code;
    private String desc;

    private SexEnum() {
    }
    
    private SexEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public Integer getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }
}

测试:

public class Test_01 {
    public static void main(String[] args) {
        // 获取男性对应代码及名称
        Integer manCode = CustomSexEnum.man.getCode();
        String manDesc = CustomSexEnum.man.getDesc();
        System.out.println("manCode = " + manCode);
        System.out.println("manDesc = " + manDesc);

        // 获取女性对应的代码及名称
        Integer womanCode = SexEnum.woman.getCode();
        String womanDesc = SexEnum.woman.getDesc();
        System.out.println("womanCode = " + womanCode);
        System.out.println("womanDesc = " + womanDesc);
        
        // 枚举就是一个对象
        SexEnum man = SexEnum.man;
        System.out.println(man == SexEnum.man);
    }
}

运行:

manCode = 1
manDesc = 男
womanCode = 2
womanDesc = 女
true

三、枚举实现接口

示例:

// 系统代码接口
public interface SystemCode {
    // 获取代码
    Integer getCode();

    // 获取代码描述
    String getDesc();
}
// 系统代码接口实现类
public enum SystemCodeEnum implements SystemCode {

    ERROR(-1, "系统异常"),
    FAIL(0, "操作失败"),
    SUCCESS(1, "操作成功");

    private Integer code;
    private String desc;

    SystemCodeEnum() {
    }

    SystemCodeEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    @Override
    public Integer getCode() {
        return this.code;
    }

    @Override
    public String getDesc() {
        return this.desc;
    }
}

测试:

public class Test_02 {
    public static void main(String[] args) {
        SystemCode systemCode = SystemCodeEnum.SUCCESS;
        System.out.println("code = " + systemCode.getCode());
        System.out.println("desc = " + systemCode.getDesc());
    }
}

运行:

code = 1
desc = 操作成功


这篇关于Java — 枚举的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程