在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。
例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。
在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。
1、颜色枚举
package com.meiju; /** * 简单应用,color */ public enum ColorEnum { blue, wite, red, green, yellow; private final static String cloe = "blue"; public static ColorEnum getSeason() { if ("blue".equals(cloe)) return blue; else return wite; } }
package com.test; import com.meiju.ColorEnum; public class ColorEnumTest { public static void main(String[] args) { System.out.println("颜色:" + ColorEnum.wite); System.out.println("颜色:" + ColorEnum.red); } }
输出结果:
颜色:wite
颜色:red
2、性别枚举
package com.meiju; /** * 性别,实现带有构造器的枚举 */ public enum GenderEnum { //通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错 //赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错 MAN("MAN"), WOMEN("WOMEN"); public final String value; //构造器默认也只能是private, 从而保证构造函数只能在内部使用 GenderEnum(String value) { this.value = value; } public String getValue() { return value; } }
package com.test; import com.meiju.GenderEnum; public class GenderEnumTest { public static void main(String[] args) { System.out.println("性别:" + GenderEnum.MAN); System.out.println("性别:" + GenderEnum.MAN.getValue()); } }
输出结果:
性别:MAN
性别:MAN
3、管理员枚举
package com.meiju; import java.util.ArrayList; import java.util.List; public enum NameEnum { //枚举 XMMCODE("XMMCODE", "熊某某"), LMMCODE("LMMCODE", "李某某"), ZMMCODE("ZMMCODE", "张某某"); //枚举的类和value private String key; private String value; private NameEnum(String key, String value) { this.key = key; this.value = value; } public static NameEnum getEnum(String key) { for (NameEnum type : NameEnum.values()) { if (type.key.equals(key)) { return type; } } return null; } public static List<NameEnum> getEnumList() { List<NameEnum> enumList = new ArrayList<NameEnum>(); for (NameEnum e : NameEnum.values()) { enumList.add(e); } return enumList; } public String getKey() { return key; } public String getValue() { return value; } }
package com.test; import com.meiju.NameEnum; public class NameEnumTest { public static void main(String[] args) { System.out.println("管理员key:" + NameEnum.XMMCODE); System.out.println("管理员key:" + NameEnum.XMMCODE.getKey()); System.out.println("管理员姓名:" + NameEnum.XMMCODE.getValue()); } }
输出结果:
管理员key:XMMCODE
管理员key:XMMCODE
管理员姓名:熊某某
4、订单状态枚举
package com.meiju; /** * 订单状态, 实现带有抽象方法的枚举 */ public enum OrderStateEnum { //已取消 CANCEL {public String getName() {return "已取消";}}, //待审核 WAITCONFIRM {public String getName() {return "待审核";}}, //等待付款 WAITPAYMENT {public String getName() {return "等待付款";}}, //正在配货 ADMEASUREPRODUCT {public String getName() {return "正在配货";}}, //等待发货 WAITDELIVER {public String getName() {return "等待发货";}}, //已发货 DELIVERED {public String getName() {return "已发货";}}, //已收货 RECEIVED {public String getName() {return "已收货";}}; public abstract String getName(); }
package com.test; import com.meiju.OrderStateEnum; public class OrderStateEnumTest { public static void main(String[] args) { System.out.println("订单状态:" + OrderStateEnum.CANCEL); System.out.println("订单状态:" + OrderStateEnum.CANCEL.getName()); } }
输出结果:
订单状态:CANCEL
订单状态:已取消
5、索引枚举
package com.meiju; /** * 索引 */ public enum SerialEnum { //位数,中文解说,code,开始值 SERIAL_NUMBER(12, "流水号", "SERIAL_NUMBER", 100000000000L), TEST_ID(12, "测试序列", "TEST_ID", 100000000000L), TEST_INDEX(10, "测试索引", "TEST_INDEX", 1L); private Integer serialEnumLength; private String SerialEnumName; private String SerialEnumCode; private Long startEnumSn; SerialEnum(Integer serialEnumLength, String SerialEnumName, String SerialEnumCode, Long startEnumSn) { this.SerialEnumCode = SerialEnumCode; this.serialEnumLength = serialEnumLength; this.SerialEnumName = SerialEnumName; this.startEnumSn = startEnumSn; } public Integer getSerialEnumLength() { return serialEnumLength; } public void setSerialEnumLength(Integer serialEnumLength) { this.serialEnumLength = serialEnumLength; } public String getSerialEnumName() { return SerialEnumName; } public void setSerialEnumName(String serialEnumName) { SerialEnumName = serialEnumName; } public String getSerialEnumCode() { return SerialEnumCode; } public void setSerialEnumCode(String serialEnumCode) { SerialEnumCode = serialEnumCode; } public Long getStartEnumSn() { return startEnumSn; } public void setStartEnumSn(Long startEnumSn) { this.startEnumSn = startEnumSn; } }
package com.test; import com.meiju.SerialEnum; public class SerialEnumTest { public static void main(String[] args) { System.out.println("索引code:" + SerialEnum.SERIAL_NUMBER.getSerialEnumCode()); System.out.println("索引中文解释:" + SerialEnum.SERIAL_NUMBER.getSerialEnumName()); System.out.println("索引开始值:" + SerialEnum.SERIAL_NUMBER.getStartEnumSn()); System.out.println("索引长度:" + SerialEnum.SERIAL_NUMBER.getSerialEnumLength()); } }
输出结果:
索引code:SERIAL_NUMBER
索引中文解释:流水号
索引开始值:100000000000
索引长度:12
99、总结
package com.test; import com.meiju.ColorEnum; import com.meiju.GenderEnum; import com.meiju.OrderStateEnum; public class Enumtest { public static void main(String[] args) { //枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值 ColorEnum colorEnum = ColorEnum.blue; switch (colorEnum) { case red: System.out.println("color is red"); break; case green: System.out.println("color is green"); break; case yellow: System.out.println("color is yellow"); break; case blue: System.out.println("color is blue"); break; default : break; } //遍历枚举 System.out.println("遍历ColorEnum枚举中的值"); for(ColorEnum color : ColorEnum.values()){ System.out.println(color); } //获取枚举的个数 System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个"); //获取枚举的索引位置,默认从0开始 System.out.println(ColorEnum.red.ordinal());//0 System.out.println(ColorEnum.green.ordinal());//1 System.out.println(ColorEnum.yellow.ordinal());//2 System.out.println(ColorEnum.blue.ordinal());//3 //枚举默认实现了java.lang.Comparable接口 System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1 System.err.println("颜色为" + ColorEnum.getSeason()); System.out.println("==========="); for(GenderEnum gender : GenderEnum.values()){ System.out.println(gender.value); } System.out.println("==========="); for(OrderStateEnum order : OrderStateEnum.values()){ System.out.println(order.getName()); } } }
相关推荐
演示如何操作Delphi 的枚举类型。 1. 包含源代码; 2. 包含执行程序 3. 演示如下函数如何使用:GetEnumName、GetEnumProp、GetEnumValue、SetEnumProp 4. 非常简单,一看就会。
NULL 博文链接:https://rensanning.iteye.com/blog/2013734
JAVA枚举类型的用法详解 例举了JAVA 枚举类型常见用法
枚举类型在switch语句中的用法枚举类型在switch语句中的用法
主要介绍了Java的枚举类型使用方法详解,从背景、到定义、特点、使用方式做个简单了解,感兴趣的小伙伴们可以参考一下
C# 枚举类型的实例说明,描述了枚举类型的主要使用方法
非常有用的枚举类型使用例子,简化了数据采集通道的定义。
枚举类型定义与变量声明定义的不同方法,使用vc++ 6.0编写
JAVA枚举类型的用法.doc
一个关于JAVA枚举类型的MHT文件,包含JAVA枚举类型的用法,以及JDK版本的问题。
讲述了java中的枚举类型的用法,深入枚举类型
枚举常量是枚举类型中的值,即枚举值。枚举类型是一种用户定义的类型,只有用户在程序中定义它后才能被使用。
本文实例总结了python模拟enum枚举类型的方法。分享给大家供大家参考。具体分析如下: python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模拟enum枚举类型 方法1. 使用自定义类 class...
enum.docx ,详细介绍了enum的用法,枚举用法在c#中比较常见,希望会有帮助哦
主要介绍了JavaScript enum枚举类型定义及使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
本代码是本人学习中一些笔记,希望对你有帮助!!
枚举在android应用开发中的小列子,知识点有应用到手势的绘制监听函数
一种常见的方式是,使用常量来代表枚举类型 const YES = '是'; const NO = '否'; 可以在这个基础上更进一步,将其封装成类,以便于管理 class BoolEnum { const YES = '是'; const NO = '否'; } 现在,我们希望...
主要介绍了Java中枚举类型的一种使用方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧