java枚举应用(一)

来源:互联网 发布:上古卷轴5elin捏脸数据 编辑:程序博客网 时间:2024/06/01 21:29
/** * 简单枚举 * @author littlehow * */public enum Week {//周一到周日,不重写其toString的情况,默认为字面量Monday(1), Tuesday(2), Wednesday(3), Thursday(4), Friday(5), Saturday(6), Sunday(0);private int day;Week(int day) {this.day = day;}/** * 根据数字天数返回对应枚举 * @param day  0-6之间的天数 * @return */public static Week valueOf(int day) {if (day < 0 || day > 6 ) throw new IllegalArgumentException("no enum day is " + day);Week w = null;//数字都在可控范围,不需要defaultswitch (day) {case 0 : w = Sunday; break;case 1 : w = Monday; break;case 2 : w = Tuesday; break;case 3 : w = Wednesday; break;case 4 : w = Thursday; break;case 5 : w = Friday; break;case 6 : w = Saturday;}return w;}/** * 获取对应的数值 * @return */public int getDay() {return this.day;}/** * 对枚举的一些基本操作 * @param args */public static void main(String[] args) {System.out.println(Monday);//输出Monday/** 根据字面量获取枚举实例 */Week w = Week.valueOf("Thursday");System.out.println(w.getDay());//4/** 根据数字天数获取 */w = Week.valueOf(2);System.out.println(w);//Tuesdaytry {/** 超出范围则抛出异常 */w = Week.valueOf(8);} catch (Exception e) {System.out.println(e.getMessage());//no enum day is 8}try {/** 设置一个没有字面量的枚举 */w = Week.valueOf("ME");} catch (Exception e) {System.out.println(e.getMessage());//No enum constant Week.ME}//枚举可作为switch控制语句java.util.Random r = new java.util.Random();for (int i = 0; i < 3; i ++) {w = Week.valueOf(r.nextInt(7));//随机三次0-6,看看不同的输出咯switch (w) {case Monday :System.out.println("今天是周一,又要开始上班了,呜呜..."); break;case Tuesday :System.out.println("今天是周二,昨天上班好累啊."); break;case Wednesday :System.out.println("一晃就周三啦,还有两天放假了,哈哈..."); break;case Thursday :System.out.println("周四了,今天都干了啥呢?"); break;case Friday :System.out.println("请大吼一句:老夫明天不上班!!"); break;case Saturday :case Sunday :System.out.println("好好放松啦,得之不易的周末哎!"); break;default :System.out.println("昏天暗地,不知时日啊!");}}}}

2 0
原创粉丝点击