动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Java枚举类型enum用法

04-10 22:42 817浏览
举报 T字号
  • 大字
  • 中字
  • 小字

1.常量定义

public enum WeekDay {
        SUN, MON, TUE, WED, THT, FRI, SAT
}

2.switch

public enum WeekDay {
    SUN, MON, TUE, WED, THT, FRI, SAT
}
     
public class SelectDay{
    WeekDay weekday = WeekDay.SUN;
    public void select(){
        switch(weekday){
           case SUN:
                 weekday = WeekDay.SUN;
                 break;
                ...
        }
    }
}

3.向枚举添加新方法

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;  
        }  
}  

4.覆盖枚举方法

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;
        }
        //覆盖方法
        @Override
        public String toString() {
        return this.index+"_"+this.name;
        }
}

5.实现接口

public 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);
        }
}

6.接口组织枚举

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

7.枚举集合

​public class Test {
        public static void main(String[] args) {
            EnumSet<WeekDay> week = EnumSet.noneOf(WeekDay.class);
            week.add(WeekDay.MON);
            System.out.println("EnumSet中的元素:" + week);
            week.remove(WeekDay.MON);
            System.out.println("EnumSet中的元素:" + week);
            week.addAll(EnumSet.complementOf(week));
            System.out.println("EnumSet中的元素:" + week);
            week.removeAll(EnumSet.range(WeekDay.FRI, WeekDay.SAT));
            System.out.println("EnumSet中的元素:" + week);
        }
}
​
0人推荐
共同学习,写下你的评论
0条评论
代码小兵545
程序员代码小兵545

5篇文章贡献19776字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Mybatis返回值类型

代码小兵87207-15 12:10

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

深入理解JVM虚拟机

杨晶珍05-12 17:30

发评论

举报

0/150

取消