枚舉

1.1.1     枚舉簡介

枚舉是由一組固定的常量組成的類型,自定義數據類型。語法: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類。能夠把枚舉類型看出一個類。

 
1
publicclass 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 }

 

 

1.1.2     枚舉和字符串轉化


public
staticvoid 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);

     }

 

1.1.3     枚舉和switch

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

 

 

總結

  1. 只可以取特定值中的一個
  2. 使用enum關鍵字
  3. 全部的枚舉類型隱性地繼承自 java.lang.Enum。(枚舉實質上仍是類!而每一個被枚舉的成員實質就是一個枚舉類型的實例,他們默認都是public static final的。能夠直接經過枚舉類型名直接使用它們。)
  4. 強烈建議當你須要定義一組常量時,使用枚舉類型
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息