声明:本文转载自https://www.jianshu.com/p/d2cb1355653c,版权归原作者所有,本文只做个人记录。如有侵权,请告知,立即删除。
enum(枚举)类介绍
java枚举类是一组预定义常量的集合,使用enum关键字声明这个类,常量名称官方建议大写
1. 每一个enum枚举值还可以拥有各自的内部方法!
public enum Day { MONDAY(1, "星期一", "各种不在状态"){ @Override public Day getNext() { return TUESDAY; } }, TUESDAY(2, "星期二", "依旧犯困"){ @Override public Day getNext() { return WEDNESDAY; } }, WEDNESDAY(3, "星期三", "感觉半周终于过去了"){ @Override public Day getNext() { return THURSDAY; } }, THURSDAY(4, "星期四", "期待这星期五"){ @Override public Day getNext() { return FRIDAY; } }, FRIDAY(5, "星期五", "感觉还不错"){ @Override public Day getNext() { return SATURDAY; } }, SATURDAY(6, "星期六", "感觉非常好"){ @Override public Day getNext() { return SUNDAY; } }, SUNDAY(7, "星期日", "感觉周末还没过够。。。"){ @Override public Day getNext() { return MONDAY; } }; Day(int index, String name, String value) { this.index = index; this.name = name; this.value = value; } private int index; private String name; private String value; public abstract Day getNext(); public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
调用下看看
public class EnumTest { Day day; public EnumTest(Day day) { this.day = day; } public void tellItLikeItIs() { switch (day) { case MONDAY: System.out.println(day.getName()+day.getValue()); System.out.println(day.getName()+"的下一天是"+day.getNext().getName()); break; case FRIDAY: System.out.println(day.getName()+day.getValue()); System.out.println(day.getName()+"的下一天是"+day.getNext().getName()); break; case SATURDAY: case SUNDAY: System.out.println(day.getName()+day.getValue()); System.out.println(day.getName()+"的下一天是"+day.getNext().getName()); break; default: System.out.println(day.getName()+day.getValue()); System.out.println(day.getName()+"的下一天是"+day.getNext().getName()); break; } } public static void main(String[] args) { EnumTest firstDay = new EnumTest(Day.MONDAY); firstDay.tellItLikeItIs(); EnumTest thirdDay = new EnumTest(Day.WEDNESDAY); thirdDay.tellItLikeItIs(); EnumTest fifthDay = new EnumTest(Day.FRIDAY); fifthDay.tellItLikeItIs(); EnumTest sixthDay = new EnumTest(Day.SATURDAY); sixthDay.tellItLikeItIs(); EnumTest seventhDay = new EnumTest(Day.SUNDAY); seventhDay.tellItLikeItIs(); } }
执行结果