1.自定義枚舉類
public class Season { /** * 私有化屬性並final修飾 */ private final String seasonName; private final String seasonDesc; /** * 私有化構造器 * @param seasonName * @param seasonDesc */ private Season(String seasonName, String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } /** * 公共靜態方法並final修飾 */ 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("冬天","白雪皚皚"); /** * 只有get方法,不能set(編譯不通過) * @return */ public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } @Override public String toString() { return "Season{" + "seasonName='" + seasonName + '\'' + ", seasonDesc='" + seasonDesc + '\'' + '}'; } }
public class SeasonTest { @Test public void test1() { Season spring = Season.SPRING; System.out.println(spring); } }
2.使用enum關鍵字定義枚舉類
/** * 使用enum關鍵字定義枚舉類 * 說明:定義的枚舉類默認繼承於java.lang.Enum類 */ public enum Season1 { /** * 提供當前枚舉類對象,多個對象以”,“隔開,末尾對象以”;"結束 */ SPRING("春天","春暖花開"), SUMMER("夏天","夏日炎炎"), AUTUMN("秋天","秋高氣爽"), WINTER("冬天","白雪皚皚"); /** * 私有化屬性並final修飾 */ private final String seasonName; private final String seasonDesc; /** * 私有化構造器 * @param seasonName * @param seasonDesc */ private Season1(String seasonName, String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } /** * 只有get方法,不能set(編譯不通過) * @return */ public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } }
public class Season1Test { @Test public void test1() { Season1 spring = Season1.SPRING; System.out.println(spring); System.out.println(Season1.class.getSuperclass()); } }