• JAVA 几种常见的 ENUM


    方法一:常量

    在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法

    public enum Color {
        RED, GREEN, BLANK, YELLOW
    }
    

    用法二:switch

    JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

    public enum Color {
        RED, GREEN, BLANK, YELLOW
    }
    
    public class TraffcLight {
        Signal color = Signal.TED;
        
        public void change() {
            switch(color) {
                case GREEN:
                    color = Signal.GREEN;
                    break;
                case RED:
                    color = Signal.RED;
                    break;
                 case YELLOW:
                    color = Signal.YELLOW;
                    break;    
            }
        }
    }
    

    用法三:向枚举中添加新方法

    如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

    public enum Color {
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
        
        private String name;
        
        private 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;
        }
        
        // get set 方法  
    
        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;  
    
        }
    }
    

    用法四:覆盖枚举的方法

    下面给出一个toString()方法覆盖的例子。

    public enum Color {
         RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
        
        // 成员变量
        private String name;
        private int index;
        
        // 构造方法
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }
        
        // 覆盖方法
        @Verride
        public String toString() {
            return this.index + "_" + this.name;
        }
    }
    

    用法五:实现接口

    所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

    publid interface Behaviour {
        void print();
        String getInfo();
    }
    
    public enum Color implements Behaviour {
         RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
        
        // 成员变量
        private String name;
        
        private int index;
        
        // 构造方法
        
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }
        
        //接口方法  
    
        @Override  
    
        public String getInfo() {  
    
            return this.name;  
    
        }  
    
        //接口方法  
    
        @Override  
    
        public void print() {  
    
            System.out.println(this.index+":"+this.name);  
    
        }
    }
    

    用法六:使用接口组织枚举

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

    用法七:关于枚举集合的使用

    java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

  • 相关阅读:
    java面向对象
    java 继承
    .net的 http 请求 利用单例减少创建销毁的资源开销 提高利用率
    net core 3.1 swagger文档添加 不用xml配置
    vs code 配置 golang 环境
    .net 使用RabbitMQ demo
    Centos7 上安装配置 RabbitMQ
    C# .net 获取程序运行的路径的几种方法
    c# Windows服务应用程序的创建、安装和卸载
    XCOPY命令 windows 一个文件夹里的文件 快速移到另一个磁盘里
  • 原文地址:https://www.cnblogs.com/hefeng2014/p/16665300.html
Copyright © 2020-2023  润新知