Java枚举类的使用说明

1 枚举类的引入

Java枚举类型在特定的场景下通途很大,比如:对系统代码、系统参数等使用枚举类型表示,不仅解决使用常量配置参数可读性差的问题,还可以对数据进行分类,本文详解Java枚举类型在企业开发中的使用方法。
1)出于类型安全考虑,没用枚举类之前,常用静态常量来表示。比如对于性别的表示:

public static final int MAN = 0;
public static final int WOMAN = 1;

但是,会导致常量配置参数可读性差的问题。枚举类能方便我们定义自己想要的类型。

Java中对常量数据的配置可以使用枚举类型实现,枚举类型是面向对象中的一种类型,它也有对象、属性、方法等所以它非常方便定义,枚举类型将它的对象(实例)设置为常量方便读取和使用。枚举类型定义格式如下:

// 定义枚举类要用关键字enum
public enum 枚举类名 {				
	枚举项1,枚举项2,枚举项3;
	构造方法
	成员变量
	成员方法
}
package com.zs;

/**
 * 枚举类型
 */
public enum Week {
    // 枚举项1, 枚举项2, ...
    MONDAY(1, "星期一"),
    TUESDAY(2, "星期二"),
    WEDNESDAY(3, "星期三"),
    THURSDAY(4, "星期四"),
    FRIDAY(5, "星期五"),
    SATURDAY(6, "星期六"),
    SUNDAY(7, "星期日");

    // 成员变量
    private Integer code;
    private String desc;

    // 构造方法(private)
    private Week(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }
    private Week(){}

    public Integer getCode() {
        return code;
    }
    public String getDesc() {
        return desc;
    }
}

@Test
    public void test() {
        System.out.println(Week.MONDAY.getCode());
        System.out.println(Week.MONDAY.getDesc());
    }

1、每个枚举类型继承java.lang.Enum,所以枚举类不能再继承其它类型。
2、枚举项就是枚举类型的对象(实例),一般使用大写字母,一个枚举项表示一个常量项,多个枚举项中间用逗号分隔。
3、枚举类型的构造方法使用private私有。
4、通过"枚举类名.枚举项名称"去访问指定的枚举项。

2 枚举类实现接口

package com.zs;
public interface SystemCode {
    Integer getCode();
    String getDesc();
}
package com.zs;

/**
 * 枚举类型
 */
public enum Week implements SystemCode{
   // ...
    @Override
    public Integer getCode() {
        return this.code;
    }
    @Override
    public String getDesc() {
        return this.getDesc();
    }
}

3 switch中使用枚举类型

枚举项即枚举类型的对象或实例,枚举项自动为常量,比较两个枚举项使用==来比较,如下代码:

    @Test
    public void test() {
        Week monday = Week.MONDAY;
        System.out.println(monday == Week.MONDAY);
    }
 @Test
    public void test() {
        Week week = Week.MONDAY;
        switch (week) {
            case MONDAY:
                System.out.println("Week.MONDAY.getDesc()");
                break;
            case TUESDAY:
                System.out.println("Week.TUESDAY.getDesc()");
                break;
            case WEDNESDAY:
                System.out.println("Week.WEDNESDAY.getDesc()");
                break;
                // ...
            default:
                break;
        }
    }
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值