枚举

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=秋天]
美丽的秋天

posted on 2014-12-08 22:29  追梦的小屁孩  阅读(159)  评论(0)    收藏  举报