zoukankan      html  css  js  c++  java
  • 重走java--Step 3

    java基础(三)之枚举用法
    用法一:常量

    public enum Color {
        RED,GREEN,RED,YELLOW;
    }
    用法二:枚举中自定义方法
    /**
     * 枚举中自定义方法
     */
    public enum Color {
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLOW("黄色", 4);
        //成员变量
        public String name;
        public int index;

        //构造函数
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }

        //普通方法
        public static String getName(int index) {
            for (Color c : Color.values()) {
                if (c.getIndex() == index) {
                    return c.name;
                }

            }
            return null;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getIndex() {

            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }
    }
    用法三:switch
    public class TrafficLight {
        Color signal = Color.RED;

        public void change() {
            switch (signal) {
                case RED:
                    signal = Color.GREEN;
                    break;
                case GREEN:
                    signal = Color.YELLOW;
                    break;
                case YELLOW:
                    signal = Color.RED;
                    break;
            }
        }
    }
    用法四:枚举实现接口
    枚举继承了java.lang.Enum.java不支持多继承,但枚举可以实现接口。

    用法五:枚举集合
    枚举集合有EnumMap与EnumSet两种,EnumMap集合中的key值是枚举,value可以是任何类型,numSet保证集合中的元素不重复。
    实例用法:
    public static void testEnumMap() {
            EnumMap<Light, String> currLight = new EnumMap<Light, String>(Light.class);
            currLight.put(Light.GREEN, "绿灯");
            currLight.put(Light.RED, "红灯");
            currLight.put(Light.YELLOW, "黄灯");
            for (Light aLight : Light.values()) {

                System.out.println("[key=" + aLight.name() + ",value="

                        + currLight.get(aLight) + "]");

            }
    }

  • 相关阅读:
    计算机编码总结
    将TOMCAT设置成为NT服务
    java 操作oracle 序号器相关
    java事件机制
    c# Semaphore(信号量)
    C#中异步和多线程的区别
    c#多线程调用有参数的方法
    解决TCP网络传输“粘包”问题
    高性能socket设计实现
    c# Buffer学习笔记
  • 原文地址:https://www.cnblogs.com/smithhan/p/5827633.html
Copyright © 2011-2022 走看看