• Java枚举


    1、枚举的定义

    //定义枚举
    public enum EnumPet {
        Dog,
        Cat,
        Bear,
        Pig
    }
    

    2、枚举的遍历

    //测试枚举
    public class EnumPetTest {
        public static void main(String[] args) {
            for (EnumPet enumPet : EnumPet.values()) {
                System.out.println("name:" + enumPet.name() + "   value:" + enumPet.toString() + "  class:" + enumPet.getDeclaringClass());
            }
        }
    }
    
    //输出结果
    name:Dog   value:Dog  class:class com.whw.EnumPet
    name:Cat   value:Cat  class:class com.whw.EnumPet
    name:Bear   value:Bear  class:class com.whw.EnumPet
    name:Pig   value:Pig  class:class com.whw.EnumPet
    

    3、枚举的常用方法

    EnumPet enumPetArray[] = EnumPet.values();//获取枚举项数组
    EnumPet enumPet = EnumPet.valueOf("Cat");//根据枚举项全名,获取枚举项
    
    String name=enumPet.name();//获取枚举项的名称
    String petString =enumPet.toString();//获取枚举项的值
    String className=enumPet.getDeclaringClass().getName();//获取枚举项所在类的名称
    int result =enumPet.compareTo(EnumPet.Dog);//对两个枚举项的排序顺序比较
    int order = enumPet.ordinal();//获取枚举项的顺序
    

    4、使用switch

    public static void printPet(EnumPet enumPet) {
            switch (enumPet) {
                case Cat:
                    System.out.println("小猫");
                    break;
                case Dog:
                    System.out.println("小狗");
                    break;
                case Pig:
                    System.out.println("小猪");
                    break;
                case Bear:
                    System.out.println("小熊");
                    break;
            }
        }
    

    5、向枚举项添加自定义值和方法

    public enum EnumWeek {
        MON("星期一",1),
        TUE("星期二",2),
        WED("星期三",3),
        THU("星期四",4),
        FRI("星期五",5),
        SAT("星期六",6),
        SUN("星期日",7) {
    
        };
    
        private String value;
        private int num;
    
        EnumWeek(String value,int num) {
            this.value = value;
            this.num=num;
        }
    
        //重载枚举的toString方法
        @Override
        public String toString() {
            return "value:" + value + " num:" + num;
        }
    
        public  String getValue(){
            return value;
        }
    
        public  int getNum(){
            return  num;
        }
    }
    
    
    public class TestEnum {
        public static void main(String[] args) {
            //遍历枚举
            for (EnumWeek enumWeek : EnumWeek.values()) {
                System.out.println("name:" + enumWeek.name() + "   value:" + enumWeek.toString() + "  class:" + enumWeek.getDeclaringClass());
            }
    
            //使用自定义方法
            System.out.println(EnumWeek.FRI.getValue());//星期五
            System.out.println(EnumWeek.FRI.getNum());//5
        }
    }
    
    //输出结果
    name:MON   value:value:星期一 num:1  class:class com.whw.EnumWeek
    name:TUE   value:value:星期二 num:2  class:class com.whw.EnumWeek
    name:WED   value:value:星期三 num:3  class:class com.whw.EnumWeek
    name:THU   value:value:星期四 num:4  class:class com.whw.EnumWeek
    name:FRI   value:value:星期五 num:5  class:class com.whw.EnumWeek
    name:SAT   value:value:星期六 num:6  class:class com.whw.EnumWeek
    name:SUN   value:value:星期日 num:7  class:class com.whw.EnumWeek
    

    6、枚举实现接口

    //定义接口
    public interface IBehaviour {
        void print();
    }
    
    //定义枚举
    public enum EnumColor implements  IBehaviour {
        Red("红色", 1),
        Green("绿色", 2),
        Blue("蓝色", 3);
    
        private String name;
        private int index;
    
        EnumColor(String name, int index) {
            this.name = name;
            this.index = index;
        }
    
        //实现接口
        @Override
        public void print() {
            System.out.println(this.name + " " + this.index);
        }
    }
    
    //测试枚举
    public class TestEnumColor {
        public static void main(String[] args) {
            EnumColor enumColor=EnumColor.Blue;
            enumColor.print();//蓝色 3
        }
    }
    
  • 相关阅读:
    webpack压缩图片之项目资源优化
    vue v-cloak 指令 处理页面显示源码
    js 获取url 参数
    element-ui Drawer抽屉组件封装
    js中的this指向
    对js闭包的理解
    vue作用域插槽
    flex布局实战
    vue 组件之间传值
    js 面试题一
  • 原文地址:https://www.cnblogs.com/giswhw/p/14865877.html
Copyright © 2020-2023  润新知