一、枚举类的使用
1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类
2.当需要定义一组常量时,强烈建议使用枚举类。
3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。
二、如何定义枚举类
方式一:jdk5.0之前自定义枚举类
public class SeasonTest { public static void main(String[] args) { Season spring = Season.SPRING; System.out.println(spring); } } //自定义枚举类 class Season{ //1.声明Season对象的属性 private final String seasonName; private final String seasonDesc; //2.私有化类的构造器 private Season(String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //3/.提供当前枚举类的多个对象 public static final Season SPRING = new Season("春天","春暖花开"); public static final Season SUMMER = new Season("夏天","夏日炎炎"); public static final Season AUTUMN = new Season("秋天","秋高气爽"); public static final Season WINTER = new Season("冬天","银装素裹"); public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } //4其他诉求:提供toString @Override public String toString() { return "Season{" + "seasonName=‘" + seasonName + ‘\‘‘ + ", seasonDesc=‘" + seasonDesc + ‘\‘‘ + ‘}‘; } }
方式二:jdk5.0时,可以使用enum关键字定义枚举类
** * 使用enum关键字定义枚举类 * 说明:定义的枚举类默认继承于java.lang.Enum类 * @author ldbstart * @create 2021-03-09 0:28 */ public class SeasonTest1 { public static void main(String[] args) { Season1 summer = Season1.SUMMER; System.out.println(summer); System.out.println(Season1.class.getSuperclass()); } } enum Season1{ //1.要求首先提供当前类的对象,多个对象之间用逗号,隔开,末尾用分号;结束 SPRING("春天","春暖花开"), SUMMER("夏天","夏日炎炎"), AUTUMN("秋天","秋高气爽"), WINTER("冬天","银装素裹"); //2.声明Season对象的属性:private final 修饰 private final String seasonName; private final String seasonDesc; //3.私有化类的构造器 private Season1(String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //4.其他诉求:获取枚举类对象的属性 public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } //4.其他诉求:提供toString方法 // @Override // public String toString() { // return "Season1{" + // "seasonName=‘" + seasonName + ‘\‘‘ + // ", seasonDesc=‘" + seasonDesc + ‘\‘‘ + // ‘}‘; // } }
三、Enum类中的常用方法
原文:https://www.cnblogs.com/ldbstart/p/14503324.html