溫馨提示×

java枚舉類支持哪些操作

小樊
81
2024-11-15 20:58:17
欄目: 編程語言

Java 枚舉類(Enum)支持以下操作:

  1. 創(chuàng)建枚舉類:使用關鍵字 enum 定義一個枚舉類,并為其指定一組有限的常量值。例如:
public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
  1. 訪問枚舉常量:通過枚舉類名直接訪問其定義的常量值。例如:
Day today = Day.MONDAY;
  1. 枚舉實例的默認構造函數(shù):枚舉類自動繼承自 java.lang.Enum 類,該類提供了一個默認的無參構造函數(shù)。但是,你不能顯式地定義一個無參構造函數(shù),因為它會被隱式地使用。

  2. 枚舉實例的比較:使用 == 操作符比較兩個枚舉實例是否相等。因為枚舉實例是單例對象,所以它們在內存中只存在一次。例如:

Day today = Day.MONDAY;
Day tomorrow = Day.TUESDAY;

if (today == tomorrow) {
    System.out.println("Today is the same as tomorrow.");
} else {
    System.out.println("Today is not the same as tomorrow.");
}
  1. 枚舉實例的順序:枚舉常量在枚舉類中按照定義的順序排列??梢允褂?ordinal() 方法獲取枚舉實例在枚舉類中的位置(從 0 開始)。例如:
int mondayOrdinal = Day.MONDAY.ordinal();
System.out.println("Monday's ordinal value is: " + mondayOrdinal);
  1. 枚舉實例的名稱:使用 name() 方法獲取枚舉實例的名稱(即定義時的常量值)。例如:
String mondayName = Day.MONDAY.name();
System.out.println("Monday's name is: " + mondayName);
  1. 枚舉實例的valueOf() 方法:使用 valueOf() 方法根據(jù)字符串名稱獲取對應的枚舉實例。例如:
Day monday = Day.valueOf("MONDAY");
System.out.println("Today is: " + monday);
  1. 遍歷枚舉實例:使用 values() 方法獲取枚舉類中所有定義的枚舉實例,并使用 for-each 循環(huán)遍歷它們。例如:
for (Day day : Day.values()) {
    System.out.println(day);
}
  1. 枚舉實例的方法:可以在枚舉類中定義方法,這些方法可以應用于該類的所有實例。例如:
public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;

    public String getDayOfWeek() {
        switch (this) {
            case SUNDAY:
                return "Sunday";
            case MONDAY:
                return "Monday";
            case TUESDAY:
                return "Tuesday";
            case WEDNESDAY:
                return "Wednesday";
            case THURSDAY:
                return "Thursday";
            case FRIDAY:
                return "Friday";
            case SATURDAY:
                return "Saturday";
            default:
                throw new IllegalStateException("Unexpected value: " + this);
        }
    }
}

然后,你可以像這樣調用枚舉實例的方法:

Day today = Day.MONDAY;
String dayOfWeek = today.getDayOfWeek();
System.out.println("Today is: " + dayOfWeek);

0