• Java Enum Part 1


    Enum的简单使用

    package enumtest;
    
    public enum Enum1 {
        MONDAY, SUNDAY;
        
        public static void main(String[] args) {
            for (Enum1 e : Enum1.values()) {
                System.out.println(e);
            }
        }
    }

    输出

    MONDAY
    SUNDAY

    嵌套使用

    package enumtest;
    
    import java.util.Random;
    
    public enum Test {
        /** 注意此处枚举实例的写法
         * 首先枚举实例必须在其他所有方法之前声明
         * 然后是他的语法,如果你有一个 EAT(String) 的枚举实例
         * 则你下面必须也有一个同名的构造方法,例如 Test(String s)
         *  **/
        EAT(Food.Eat.class),
        DRINK(Food.Drink.class);
        
        /** 为了实现枚举的嵌套使用,这里使用接口
         * 注意接口内的枚举必须要实现接口
         * 否则下面的构造方法将无法通过一个方法就获得不同类型的枚举的所有实例
         *  **/
        interface Food {
            enum Eat implements Food { BEEF, PORK, RICE, BREAD };
            enum Drink implements Food { JUICE, WATER, BEER, WINE };
        }
        
        private Random rand = new Random(47);
        private Food[] values;
    
        private Test(Class<? extends Food> kind) {  // 此处必须要有和枚举实例同名的构造方法
            values = kind.getEnumConstants();
        }
        
        private Food randomSelect() {
            return values[rand.nextInt(values.length)];
        }
        
        public static void main(String[] args) {
            // 生成菜单
            for (int i = 0; i < 4; i++) {
                for (Test food : Test.values()) {
                    System.out.println(food.randomSelect());
                }
                System.out.println("----------------------");
            }
        }
    }

    输出

    RICE
    BEER
    ----------------------
    PORK
    WATER
    ----------------------
    RICE
    BEER
    ----------------------
    BEEF
    JUICE
    ----------------------

  • 相关阅读:
    POJ 2342.Anniversary party-树形dp
    Codeforces Round #363 (Div. 2) A、B、C
    Codeforces Beta Round #17 D.Notepad 指数循环节
    hdu 5920 Wool 思路
    hdu 5719 Arrange 贪心
    hdu 5718 Oracle 高精度
    hiho #1332 : 简单计算器 栈+递归
    UESTC 1074 秋实大哥搞算数 栈模拟
    cdoj 1329 卿学姐与魔法 优先队列
    cdoj 1324 卿学姐与公主 线段树裸题
  • 原文地址:https://www.cnblogs.com/zemliu/p/2915091.html
Copyright © 2020-2023  润新知