ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java — 枚举

2022-05-10 15:32:45  阅读:351  来源: 互联网

标签:code Java String 枚举 Integer public desc


目录

一、枚举简介

枚举是 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 = 操作成功

标签:code,Java,String,枚举,Integer,public,desc
来源: https://www.cnblogs.com/bybeiya/p/16251816.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有