Enum枚举类

来源:互联网 发布:问道手指挂机软件 编辑:程序博客网 时间:2024/05/03 00:18

为什么要有枚举?

      问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;或即使使用常量方式也无法阻止意外。

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。

枚举是一个特殊的JAVA类  其构造函数必须私有 

Example:

public class EnumDemo {public static void main(String[] args) {System.out.println(Week.THU.getWeek());System.out.println(Week.THU.WeekValue());System.out.println(Week.THU.ordinal());//输出3,即此枚举对象所在序列的位置Week[] ee =Week.values();//获取所有枚举对象String s="EON";//将字符串转化城枚举对象 可以用来校验WEB开发中 表单提交的值是否违法Week week1=Week.valueOf("EON");//将抛java.lang.IllegalArgumentException异常Week week2=Week.valueOf("MON");//此代码正常执行}}enum Week{MON("星期一"){public String WeekValue(){return "上班第一天";}},TUE("星期二"){public String WeekValue(){return "上班第二天";}},WED("星期三"){public String WeekValue(){return "上班第三天";}},THU("星期四"){public String WeekValue(){return "上班第四天";}},FRI("星期五"){public String WeekValue(){return "上班第五天";}},SAT("星期六"){public String WeekValue(){return "上班第六天";}},SUN("星期日"){public String WeekValue(){return "周末休息啦";}};private String str = null;private Week(String str){this.str =str;}public String getWeek(){return str;}//枚举可以实现接口,或继承静态方法public abstract String WeekValue();}


0 0
原创粉丝点击