java枚举enum详解

package enumeratin;

public class enumeration02
{
    public static void main(String[] args)
    {
        System.out.println(Season.AUTUMN);
        System.out.println(Season.WINTER);
        //两者一样
        System.out.println(Season2.AUTUMN);
        System.out.println(Season2.SUMMER);
        Season2 spring = Season2.SPRING;
        System.out.println(spring.name());//常量名 SPRING
        System.out.println(spring.ordinal());//返回该枚举对象的次序,从0开始
        Season2[] values =Season2.values();//返回数组,含有定义的所有枚举对象
        for(Season2 season : values)//增强for循环
        {
            System.out.println(season);
        }
        Season2 winter1 = Season2.valueOf("WINTER");//返回查找到的对象,若找不到报错
        System.out.println(Season2.WINTER==winter1);//true
        //比较两个枚举常量,比较的是编号,返回编号之差
        System.out.println(Season2.WINTER.compareTo(Season2.SPRING));//3-0



    }
}

//自定义枚举实现
class Season
{
    private String name;
    private String desc;

    //定义四个对象
    public final static Season SPRING = new Season("春天","温暖");
    public final static Season SUMMER= new Season("夏天","炎热");
    public final static Season AUTUMN= new Season("秋天","凉爽");
    public final static Season WINTER = new Season("冬天","寒冷");



    //私有化,防止用户创建
    private Season(String name, String desc)
    {
        this.name = name;
        this.desc = desc;
    }

    @Override
    public String toString()
    {
        return "Season{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
}
//枚举
//enum会隐式继承 Enum类
enum Season2
{

    SPRING("春天","温暖"),
    SUMMER("夏天","炎热"),
    AUTUMN("秋天","凉爽"),
    WINTER("冬天","寒冷");
    private String name;
    private String desc;


    Season2(String name, String desc)
    {
        this.name = name;
        this.desc = desc;
    }

    @Override
    public String toString()
    {
        return "Season2{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
};
上一篇:LeetCode——多线程问题汇总


下一篇:索引的CRUD2.0