Java中枚举的练习 你真的用过枚举么?

枚举概念在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。(百度百科)枚举使用例如视频投稿状态:草稿、审核、发布。创一个静态变量类与枚举类//静态常量实体类class Status {    //    草稿    public static final int Draft = 1;    //    审核    public static final int Review = 2;    //    发布    public static final int Published = 3;}//枚举类enum VideoStatus {    Draft, Review, Published}class Judge {    public static void main(String[] args) {        judgeVideoStatus(VideoStatus.Review);        judgeStatus(Status.Draft);        System.out.println("=====华丽分割线======");//        遍历枚举常量        for (VideoStatus value : VideoStatus.values()) {//            打印枚举数组值            System.out.println(value);//            打印枚举序号            System.out.println(value.ordinal());//            打印枚举常量名            System.out.println(value.name());//            根据字符串名称返回枚举常量            VideoStatus published = VideoStatus.valueOf("Published");            switch (published) {                case Review:                    System.out.println("这是审核");                    break;                case Draft:                    System.out.println("这是草稿");                    break;                case Published:                    System.out.println("这是发布");                    break;            }            System.out.println();        }    }    static void judgeVideoStatus(VideoStatus status) {        System.out.println(status);    }    static void judgeStatus(int status) {        System.out.println(status);    }}以上代码比较下静态常量与枚举,枚举有更明确约束,例如在上述方法judgeVideoStatus中参数枚举类型,你只能写枚举中出现的常量,而在judgeStatus中参数就没相应约束了,想输入什么就输入什么,因此在比较严谨的场合下,枚举比静态常量更有优势。另一方便枚举也支持很多内置方法,使用起来很方便。