栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java枚举类的使用说明

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;
        }
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770348.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号