定义enum类实现取值和描述在c++、java等计算机编程语言中,枚举类型(enum)是一种特殊数据类型,能够为一个变量定义一组预定义的常量。在使用枚举类型的时候,枚举类型变量取值必须为其预定义的取值之一。
1.用class关键字实现的枚举类型在jdk5之前,java语言不支持枚举类型,只能用类(class)来模拟实现枚举类型。
/** 订单状态枚举 */public final class orderstatus { /** 属性相关 */ /** 状态取值 */ private final int value; /** 状态描述 */ private final string description; /** 常量相关 */ /** 已创建(1) */ public static final orderstatus created = new orderstatus(1, 已创建); /** 进行中(2) */ public static final orderstatus processing = new orderstatus(2, 进行中); /** 已完成(3) */ public static final orderstatus finished = new orderstatus(3, 已完成); /** 构造函数 */ private orderstatus(int value, string description) { this.value = value; this.description = description; } /** 获取状态取值 */ public int getvalue() { return value; } /** 获取状态描述 */ public string getdescription() { return description; }}
2.用enum关键字实现的枚举类型jdk5提供了一种新的类型——java的枚举类型,关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常量使用,这是一种非常有用的功能。
/** 订单状态枚举 */public enum orderstatus { /** 常量相关 */ /** 已创建(1) */ created(1, 已创建), /** 进行中(2) */ processing(2, 进行中), /** 已完成(3) */ finished(3, 已完成); /** 属性相关 */ /** 状态取值 */ private final int value; /** 状态描述 */ private final string description; /** 构造函数 */ private orderstatus(int value, string description) { this.value = value; this.description = description; } /** 获取状态取值 */ public int getvalue() { return value; } /** 获取状态描述 */ public string getdescription() { return description; }}
其实,enum类型就是一个语法糖,编译器帮我们做了语法的解析和编译。通过反编译,可以看到java枚举编译后实际上是生成了一个类,该类继承了 java.lang.enum,并添加了values()、valueof()等枚举类型通用方法。
以上就是java如何定义enum类实现取值和描述的详细内容。