枚舉 類 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());
    }
}

----



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