Java枚举是一个类,枚举里面的元素相当于该类的实例对象。
声明一个枚举对象,元素列表位于最前面
enum WeekDay { SUN, MON, TUE, WED, THU, FRI, SAT; }
获取一个枚举元素
WeekDay weekDay = WeekDay.SUN; System.out.println(weekDay); //SUN System.out.println(weekDay.name()); //SUN System.out.println(weekDay.ordinal()); //返回该元素的位置 0
枚举类有两个个非常重要的静态方法
1、将字符串变为枚举对象,前提是字符串值和枚举元素名是一样的。
valueOf(String arg0)
System.out.println(WeekDay.valueOf("SAT")); //SAT
2、获得枚举元素的数组对象
values()
WeekDay.values().length //7
带有构造方法,属性,方法的枚举对象,其中构造方法一定是私有的
enum WeekDay { SUN(0), MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6); private int day; private WeekDay(int day) { this.day = day; } public static WeekDay nextDay(int day) { WeekDay weekDay = null; switch (day) { case 0: weekDay = WeekDay.MON; break; case 1: weekDay = WeekDay.TUE; break; case 2: weekDay = WeekDay.WED; break; case 3: weekDay = WeekDay.THU; break; case 4: weekDay = WeekDay.FRI; break; case 5: weekDay = WeekDay.SAT; break; case 6: weekDay = WeekDay.SUN; break; default: weekDay = WeekDay.SUN; } return weekDay; } public static WeekDay nextDay(WeekDay weekDay) { return nextDay(weekDay.getDay()); } public WeekDay nextDay() { return nextDay(this.getDay()); } public int getDay() { return day; } public void setDay(int day) { this.day = day; } }
以下部分参考自:http://softbeta.iteye.com/blog/1185573
switch支持枚举类
enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; break; } } }
由于枚举类统一继承自java.lang.Enum类,所以自定义枚举类只能实现接口,不能在继承其他类了。
public interface Behaviour { void print(); String getInfo(); } public enum Color implements Behaviour{ RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this.name = name; this.index = index; } //接口方法 @Override public String getInfo() { return this.name; } //接口方法 @Override public void print() { System.out.println(this.index+":"+this.name); } }
实现带有抽象方法的枚举
enum TrafficLight { RED { @Override public TrafficLight next() { return GREEN; } }, GREEN { @Override public TrafficLight next() { return YELLOW; } }, YELLOW { @Override public TrafficLight next() { return RED; } }; public abstract TrafficLight next(); }
相关推荐
java枚举小例子,简单了解枚举的用法,适合初学者使用。
java枚举结果类、根据状态值获取枚举值 Controller: /** 模块类型枚举 */ model.addAttribute("mType", ModuleTypeEnum.ModuleTypeShow()); ftl: value="${mType.key}:${mType.value}” </#list>
列举java 枚举相关信息列举java 枚举相关信息列举java 枚举相关信息 列举java 枚举相关信息 列举java 枚举相关信息 列举java 枚举相关信息 列举java 枚举相关信息
java枚举类型的说说明,详细阐述了枚举类型的使用和注意事项
简单总结java枚举类型,适合java初学者
java枚举状态机
java 枚举ppt 枚举定义 用普通类模拟枚举 带构造方法的枚举 带抽象方法的枚举 单例与枚举 枚举与类集
一个关于JAVA枚举类型的MHT文件,包含JAVA枚举类型的用法,以及JDK版本的问题。
理解java枚举类型
Java枚举类型.pdf
本文详尽地论述了Java枚举与设计模式的关系
如有侵权请联系删除,欢迎批评指正 java枚举,起初在网上抄了一部分,然后自己加了点示例,做一个记录,也算是为以后留个备份,技术小白一个,还在努力成长
关于java枚举的一个实例,
NULL 博文链接:https://rensanning.iteye.com/blog/2013734
JAVA枚举JAVA枚举
JAVA枚举类型的用法详解 例举了JAVA 枚举类型常见用法
枚举的简单的介绍 枚举的作用 1.枚举可以实现一个或多个接口 2.可以定义新的变量 3.可以定义新的方法 4.可以定义根据具体枚举值而相异的类
java 枚举 学习心得
枚举的用法,导入myeclipse看
java枚举