枚举
1 枚举类:类的对象是有限个的。
2 自定义枚举类:
package lianxi3; public class TestSeason { public static void main(String[] args){ System.out.println(Season.SPRING.getSeasonName()); Season spring = Season.SPRING; spring.show(); System.out.println(spring); } } class Season{ private final String seasonName; private final String seasonDesc; public Season(String seasonName, String seasonDesc) { super(); this.seasonName = seasonName; this.seasonDesc = seasonDesc; } public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } //创建枚举类的对象 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("冬天","白雪皑皑"); @Override public String toString() { return "Season [seasonDesc=" + seasonDesc + ", seasonName=" + seasonName + "]"; } public void show(){ System.out.println("一年四季"); } }
结果:
春天
一年四季
Season [seasonDesc=春暖花开, seasonName=春天]
3 enum关键字定义枚举类:常用方法:values() valueOf(String name)
如何让枚举类实现接口:让不同的枚举类对象调用被重写的抽象方法,执行效果不同。
package lianxi3; public class TestSeason2 { public static void main(String[] args){ // System.out.println(Season2.SPRING.getSeasonName()); // Season2 spring = Season2.SPRING; // spring.show(); // System.out.println(spring); // System.out.println(); Season2[] seasons = Season2.values(); for(int i=0;i<seasons.length;i++){ System.out.println(seasons[i]); seasons[i].show(); } System.out.println(); String str = "AUTUMN"; Season2 sea = Season2.valueOf(str); System.out.println(sea); sea.show(); } } interface season{ public void show(); } enum Season2 implements season{ //创建枚举类的对象 SPRING("春天","春暖花开"){ public void show(){ System.out.println("美丽的春天"); } }, SUMMER("夏天","夏日炎炎"){ public void show(){ System.out.println("美丽的夏天"); } }, AUTUMN("秋天","秋高气爽"){ public void show(){ System.out.println("美丽的秋天"); } }, WINTER("冬天","白雪皑皑"){ public void show(){ System.out.println("美丽的冬天"); } }; private final String seasonName; private final String seasonDesc; private Season2(String seasonName, String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } @Override public String toString() { return "Season2 [seasonDesc=" + seasonDesc + ", seasonName=" + seasonName + "]"; } public void show(){ System.out.println("一年四季"); } }
结果:
Season2 [seasonDesc=春暖花开, seasonName=春天]
美丽的春天
Season2 [seasonDesc=夏日炎炎, seasonName=夏天]
美丽的夏天
Season2 [seasonDesc=秋高气爽, seasonName=秋天]
美丽的秋天
Season2 [seasonDesc=白雪皑皑, seasonName=冬天]
美丽的冬天
Season2 [seasonDesc=秋高气爽, seasonName=秋天]
美丽的秋天
浙公网安备 33010602011771号