java自定义枚举类的两种方法

public class SeasonTest {//测试类
    public static void main(String[] args) {
        System.out.println(Season1.AUTUMN);
        System.out.println(Season1.SPRING);

        System.out.println("------------");

        System.out.println(Season2.WINTER);
        System.out.println(Season2.SUMMER);
    }
}


//自定义枚举类 ;方式1:
class Season1{
    //1.声明属性并以private final修饰
    private final String seasonName;
    private final String seasonDesc;

    //2.私有化构造器,并给属性赋值
    private Season1(String seasonName , String seasonDesc){
        this.seasonDesc=seasonDesc;
        this.seasonName=seasonName;
    }

    //3.提供当前枚举类的多个对象,声明为 public static final
    public  static final Season1 SPRING=new Season1("春天","春暖花开");
    public  static final Season1 SUMMER=new Season1("夏天","夏日炎炎");
    public  static final Season1 AUTUMN=new Season1("秋天","秋高气爽");
    public  static final Season1 WINTER=new Season1("冬天","白雪皑皑");

    //4.其他诉求,如:获取对象属性,toString方法

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "Season1{" +
                "seasonName='" + seasonName + '\'' +
                ", seasonDesc='" + seasonDesc + '\'' +
                '}';
    }
}

//方式二:通过enum关键字定义自定义枚举类
enum Season2{
    //1.提供当前枚举类对象
    SPRING("春天","春暖花开"),//注意:多个对象之间用 , 隔开
    SUMMER("夏天","夏日炎炎"),
    AUTUMN("秋天","秋高气爽"),
    WINTER("冬天","白雪皑皑");//末尾对象用 ;

    //2.声明属性并以private fianl修饰
    private final String seasonName;
    private final String seasonDesc;

    //3.私有化构造器
    private Season2(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    //4.其他诉求

    @Override
    public String toString() {
        return "Season2{" +
                "seasonName='" + seasonName + '\'' +
                ", seasonDesc='" + seasonDesc + '\'' +
                '}';
    }

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }
}

版权声明:本文为weixin_56600091原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。