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

😂 这篇文章最后更新于1501天前,您需要注意相关的内容是否还可用。
目录导航
  • 枚举概念
  • 枚举使用
  • 枚举概念

    在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的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中参数就没相应约束了,想输入什么就输入什么,因此在比较严谨的场合下,枚举比静态常量更有优势。另一方便枚举也支持很多内置方法,使用起来很方便。