Java基礎:五、枚舉類型 (10)

  • 2020 年 3 月 17 日
  • 筆記

public enum Spiciness{      NOT,MILD,MEDIUM,HOT,FLAMING  }

這裡創建了一個名為Spiciness的枚舉類型,它具有5個具名值,由於枚舉類型的實例是常量,因此按照命名慣例它們都用大寫字母表示(如果在一個名字中有多個單詞,用下劃線將它們隔開)

為了使用enum,需要創建一個該類型的引用,並將其賦值給某個實例:

public class SimpleEnumUse{      public static void main(String[] args){          Spiciness howHot = Spiciness.MEDIUM;          System.out.println(howHot);      }  }

在你創建enum時,編譯器會自動添加一些有用的特性。例如,它會創建toString()方法,以便你可以很方便地顯示某個enum實例的名字,這正是上面的打印語句如何產生其輸出的答案。編譯器還會創建ordinal()方法,用來表示某個特定enum常量的聲明順序,以及static values()方法,用來按照enum常量的聲明順序,產生由這些常量值構成的數組

public class EnumOrder{      public static void main(String[] args){        for(Spiciness s: Spiciness.values()){            System.out.println(s + ", ordinal " + s.ordinal());          }      }  }

由於switch是要在有限的集合中進行選擇,enum可以在switch語句中使用

public class Burrito{      Spiciness degree;      public Burrito(Spiciness degree){          this.degree = degree;      }        public void describe(){          System.out.println("this burrito is");          swtich(degree){              case NOT: System.out.println("not spicy at all");break;              case MILD:              case MEDIUM:System.out.println("a little hot");break;              case HOT;              case FLAMING:              default: System.out.println("maybe too hot.");          }      }      public static void main(String[] args){          Burrito plain = new Burrito(Spiciness.NOT);          Burrito greenChile = new Burrito(Spiciness.MEDIUM:System);          Burrito jalaeno = new Burrito(Spiciness.HOT);          plain.describe();          greenChile.describe();          jalaeno.describe();      }  }

大體上,你可以將enum用作另外一個創建數據類型的方式,然後直接將所得到的類型拿來使用,這正是關鍵所在。