Java枚举类的7种常用的方法

一:存放常量

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

二:switch

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

public class Test2 {
    public static void main(String[] args) {
        EnumTest color=EnumTest.BLANK;
        switch (color) {
            case RED:
                color = EnumTest.GREEN;
                break;
            case YELLOW:
                color = EnumTest.RED;
                break;
            case GREEN:
                color = EnumTest.YELLOW;
                break;
        }
    }
}

三:枚举中添加方法

public enum EnumTest {
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
    private String name;
    private int index;

    // 构造方法
    private EnumTest(String name, int index) {
        this.name = name;
        this.index = index;
    }

    // 普通方法
    public static String getName(int index) {
        for (EnumTest c : EnumTest.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;
    }
}

四:覆盖枚举的方法

    //覆盖方法  
    @Override  
    public String toString() {  
        return this.index+"_"+this.name;  
    }  

五:实现接口

    public interface Behaviour {  
        void print();  
        String getInfo();  
    }
    //接口方法  
    @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文档。

 

posted @ 2019-08-07 11:39  沦为旧友  阅读(16457)  评论(0编辑  收藏  举报