枚舉

// Java
enum MyColor{
  RED("Hot", 4), BLUE("SAD",8);
  
  private String mood;
  public String getMood{
    return mood;
  }
  private int index;
  public int getIndex(){
    return index;
  }
  private MyColor(String mood, int index){
    this.mood = mood;
    this.index = index;
  }
}
System.out.println(MyColor.RED.getMood());

  小結:ide

     1. 定義枚舉類型本質上就是在定義帶final修飾符的Enum<E>的子類;this

     2. 枚舉值本質爲第1點所定義的類的類常量;spa

     3. 枚舉值的ordinal值由其定義時的排序決定,而且在編譯時已經被設置好了。code

 

public enum MyColor{
RED, BLUE(){
@Override
public boolean getFlag(){
return false;
}
};
public boolean getFlag(){
return true;
}
}
// 調用
System.out.println(MyColor.RED.getFlag()); // 顯示true
System.out.println(MyColor.BLUE.getFlag()); // 顯示falseblog

 

能夠看到枚舉值RED和BLUE同一個方法具備不一樣的行爲。其實這是經過匿名內部類的方式實現的,BLUE的類型爲MyColor$1 extends MyColor,而RED的類型爲MyColor。排序

 

使用接口組織枚舉                          接口

複製代碼
public interface Food {
        enum Coffee implements Food {
            BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO
        }

        enum Dessert implements Food {
            FRUIT, CAKE, GELATO
        }
    }
複製代碼
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息