枚舉是由一組固定的常量組成的類型,自定義數據類型。語法:java
[修飾符] enum enumName{ide 常量值1,this 常量值2,spa 常量值3…code
常量值n[;]blog }繼承 |
枚舉的常量值必定是可列舉的有限值。常量值的類型都是public static finalci
案例:定義一個性別的枚舉類型。字符串
public enum Gender {get 男, 女, 保密; } |
Gender 是一種自定義的數據類型,能夠用於聲明變量,且變量的取值必須是枚舉值的其中一個。如:gender的值必須是男或者女或者保密。
public static void main(String[] args) {
// 聲明一個Gender枚舉類型的變量gender,並取值爲男 Gender gender = Gender.男; } |
java中全部的枚舉類型都繼承於Enum類。能夠把枚舉類型看出一個類。
1publicclass Student {
2 3 4 5 private String name; 6 7 private int age; 8 9 private Gender gender; 10 11 12 13 public String getName() { 14 15 return name; 16 17 } 18 19 20 21 public void setName(String name) { 22 23 this.name = name; 24 25 } 26 27 28 29 public int getAge() { 30 31 return age; 32 33 } 34 35 36 37 public void setAge(int age) { 38 39 this.age = age; 40 41 } 42 43 44 45 public Gender getGender() { 46 47 return gender; 48 49 } 50 51 52 53 public void setGender(Gender gender) { 54 55 this.gender = gender; 56 57 } 58 59 60 61 public Student(String name, int age, Gender gender) { 62 63 super(); 64 65 this.name = name; 66 67 this.age = age; 68 69 this.gender = gender; 70 71 } 72 73 74 75 public Student() { 76 77 super(); 78 79 } 80 81 82 83 @Override 84 85 public String toString() { 86 87 return "Student [name=" + name + ", age=" + age + ", gender=" + gender + "]"; 88 89 } 90 91 92 93 } 94 95 96 97 // class Gender extends Enum{} 98 99 enum Gender { 100 101 男, 女, 保密; 102 103 }
publicstaticvoid main(String[] args) {
// 聲明一個Gender枚舉類型的變量gender,並取值爲男 Gender gender = Gender.男; // 枚舉值->字符串 System.out.println(gender.toString()); // 字符串串-> 枚舉值 String str = "保密"; // 可能產生IllegalArgumentException 非法參數異常 Gender gender2 = Enum.valueOf(Gender.class, str); System.out.println(gender2); }
public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; }
public static void main(String[] args) { // 需求:有一個變量表示星期幾,輸出對於的教學安排 Week week = Week.TUESDAY; switch (week) { case MONDAY: case TUESDAY: case THURSDAY: case FRIDAY: case SATURDAY:{ System.out.println("上課"); break; } case WEDNESDAY: case SUNDAY:{ System.out.println("練習"); break; } } }
枚舉的其餘方法
public static void main(String[] args) { // 枚舉變量的其餘方法 Week week = Week.SUNDAY; System.out.println(week.name()); System.out.println(week.ordinal()); }
總結