枚举 类 enum

package com.enums;

public enum Season implements EnumInterfaces{
   //枚举类的实例需要在枚举类的第I行中列出
   /***
    * 关于枚举类
    * 1、定义:一个类的对象的个数是有限而且是固定的,且属性固定
    * 2、手工定义枚举类
    * 2.1 私有化构造器
    * 2.2 属性使用final 来修饰
    * 2.3 在内的内部创建枚举类的对象 且使用public static final修饰
    * 2.4 提供些工具方法,values(),valueOf();
    * 3、枚举类enum的关键字定义:
    * 3.1 枚举类对象的声明必须放在枚举类的第一行,声明对象的同时即时创建
    * 枚举类对象的过程,
    * SPRING("春天","春风又绿江南岸"),
      SUMMER("夏天","映日荷花别样红");
      3.2 若有属性使用 static final 修饰,是其变为常量,
      3.4 构造器默认使用private 修饰
    * 4、枚举类常用的方法
    * 4.1 values(); valueOf();
    * 5、实现接口的枚举类
    * 5.1 统一在一个方法中提供各个枚举类对象的实现,可以使用swith
    *      public String getInfo() {
        // TODO Auto-generated method stub
        switch (this) {
        case SPRING:return "s---";
        case SUMMER:return "summer---";    
        }
        return null;
    }
    *
    * */
    
    
    SPRING("春天","春风又绿江南岸"),
    SUMMER("夏天","映日荷花别样红");
    
    private Season(String name,String desc){
        this.SEASON_DESC = desc;
        this.SEASON_NAME = name;
    }
    
    final String SEASON_NAME;
    final String SEASON_DESC;
    
    /* 接口实践
     * (non-Javadoc)
     * @see com.enums.EnumInterfaces#getInfo()
     */
    public String getInfo() {
        // TODO Auto-generated method stub
        switch (this) {
        case SPRING:return "s---";
        case SUMMER:return "summer---";    
        }
        return null;
    }
}


接口类

package com.enums;

public interface EnumInterfaces {
    public String getInfo();
}

测试类

package com.enums;
import org.junit.Test;
public class TestEnum {
    
    @Test
    public void testSeason(){
        //System.out.println(Season.SPRING.SEASON_DESC);
        System.out.println(Season.SPRING);
        System.out.println(Season2.SPRING.getSEASON_DESC());
        
    }
    //test valueOf ,values
    
    @Test
    public void testEnumMethod(){
//        Season[] seasons = Season.values();
//        for(Season season :seasons){
//            System.out.println(season);
//        }
        String input = "SPRING";
        Season season =  Enum.valueOf(Season.class, input);
    
    }
    
    @Test
    public void testEnumInterface(){
        System.out.println(Season.SPRING.getInfo());
    }
}

----



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章