zoukankan      html  css  js  c++  java
  • Java中关于枚举的7种用法

    1.定义常量:

    public enum Color {
        RED,ORANGE,YELLOW,GREEN,INDIGO,BLUE,PURPLE
    }

    2.用于switch: 

    enum Color {
        RED,ORANGE,YELLOW,GREEN,INDIGO,BLUE,PURPLE
    }
    public class Draw{
        Color c = Color.BLUE;
        public void draw(){
            switch(c){
            case RED:
                c = Color.RED;
                break;
            case ORANGE:
                c = Color.ORANGE;
                break;
            case YELLOW:
                c = Color.YELLOW;
                break;
            case GREEN:
                c = Color.GREEN;
                break;
            case INDIGO:
                c = Color.INDIGO;
                break;
            case BLUE:
                c = Color.BLUE;
                break;
            case PURPLE:
                c = Color.PURPLE;
                break;
            }
        }
    } 

    3.在枚举中添加新方法:

    public enum Color {
        RED(1,"红"),
        ORANGE(2,"橙"),
        YELLOW(3,"黄"),
        GREEN(4,"绿"),
        INDIGO(5,"靛"),
        BLUE(6,"蓝"),
        PURPLE(7,"紫");
        //成员变量
        private int sequence;
        private String name;
        //构造方法
        private Color(int sequence, String name) {
            this.sequence = sequence;
            this.name = name;
        }
        //自定义方法
        public static String getColorName(int sequence){
            for (Color c : Color.values()) {
                if(c.getSequence() == sequence)
                    return c.name;
            }
            return null;
        }
        //getter&setter
        public int getSequence() {
            return sequence;
        }
        public void setSequence(int sequence) {
            this.sequence = sequence;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

    4.覆盖(重写)枚举的方法:

    public enum Color {
        RED(1,"红"),
        ORANGE(2,"橙"),
        YELLOW(3,"黄"),
        GREEN(4,"绿"),
        INDIGO(5,"靛"),
        BLUE(6,"蓝"),
        PURPLE(7,"紫");
        //成员变量
        private int sequence;
        private String name;
        //构造方法
        private Color(int sequence, String name) {
            this.sequence = sequence;
            this.name = name;
        }
        //覆盖方法
        @Override
        public String toString() {
            return "顺序:"+this.sequence+"_颜色名:"+this.name;
        }
    }

    5.实现接口:

    interface Action{
        void getDetail();
    }
    public enum Color implements Action{
        RED(1,"红"),
        ORANGE(2,"橙"),
        YELLOW(3,"黄"),
        GREEN(4,"绿"),
        INDIGO(5,"靛"),
        BLUE(6,"蓝"),
        PURPLE(7,"紫");
        //成员变量
        private int sequence;
        private String name;
        //构造方法
        private Color(int sequence, String name) {
            this.sequence = sequence;
            this.name = name;
        }
        @Override
        public void getDetail() {
            System.out.println("顺序:"+this.sequence+"_颜色名:"+this.name);
        }
    }

    6.使用接口组织枚举:

    public interface Food {  
        enum Coffee implements Food{  
            BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
        }  
        enum Dessert implements Food{  
            FRUIT, CAKE, GELATO  
        }  
    }  

    7.枚举集合:

    java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。

  • 相关阅读:
    Qt编程之右键单击QTreeWidgetItem弹出菜单
    Qt编程之QString 处理换行
    配置zbar识别二维码(转载)
    我学习图像处理的小结
    自己动手,实现“你的名字”滤镜
    结合grabcut和inpaint,实现人像去除
    (转载)找圆算法((HoughCircles)总结与优化
    寻找白板上的便签条
    寻找精密光学标定板上的矩形(网友提问)
    OpenCV中Denoising相关函数的简单介绍
  • 原文地址:https://www.cnblogs.com/lxcmyf/p/6558514.html
Copyright © 2011-2022 走看看