Java 枚舉類

2018-01-19 15:07 更新

Java面向?qū)ο笤O(shè)計(jì) - Java枚舉類

枚舉類型的超類

編譯枚舉類型時(shí),編譯器會(huì)創(chuàng)建一個(gè)類。

枚舉類型可以具有構(gòu)造函數(shù),字段和方法。枚舉類型僅在編譯器生成的代碼中實(shí)例化。

每個(gè)枚舉類型都隱式地?cái)U(kuò)展java.lang.Enum類。 Enum類中定義的所有方法都可以與所有枚舉類型一起使用。

枚舉類

下表列出了在Enum類中定義的方法。

  • public final String name()
    返回枚舉常量的名稱。
  • public final int ordinal()
    返回枚舉常量的順序。
  • public final boolean equals(Object other)
    如果指定的對象等于枚舉常量,則返回true。否則,它返回false。 ==運(yùn)算符和equals()方法返回相同的結(jié)果,當(dāng)它們用于兩個(gè)枚舉常量。
  • public final int hashCode()
    返回枚舉常量的哈希碼值。
  • public final int compareTo(E o)
    將此枚舉常量與指定的枚舉常量進(jìn)行比較。它返回此枚舉常量和指定的枚舉常量的序數(shù)值的差異。
  • public final Class getDeclaringClass()
    返回聲明枚舉常量的類的類對象。
  • public String toString()
    默認(rèn)情況下,它返回枚舉常量的名稱,這與name()方法相同。
  • public static valueOf(Class enumType,String name)返回指定的枚舉類型和名稱的枚舉常量。

例子

Level  lowLevel = Enum.valueOf(Level.class, "LOW")

以下代碼顯示了如何比較兩個(gè)枚舉常量:

enum Level {
  LOW, MEDIUM, HIGH, URGENT;
}

public class Main {
  public static void main(String[] args) {
    Level s1 = Level.LOW;
    Level s2 = Level.HIGH;

    // s1.compareTo(s2) returns s1.ordinal() - s2.ordinal()
    int diff = s1.compareTo(s2);
    if (diff > 0) {
      System.out.println(s1 + "  occurs after  " + s2);
    } else {
      System.out.println(s1 + "  occurs before " + s2);
    }

  }
}

上面的代碼生成以下結(jié)果。



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號