int
compareTo(E o)
比較此枚舉與指定對象的順序。ide
Class<E>
getDeclaringClass()
返回與此枚舉常量的枚舉類型相對應的 Class 對象。this
String
name()
返回此枚舉常量的名稱,在其枚舉聲明中對其進行聲明。spa
int
ordinal()
返回枚舉常量的序數(它在枚舉聲明中的位置,其中初始常量序數爲零)。code
String
toString()
對象
返回枚舉常量的名稱,它包含在聲明中。get
static
<T extends Enum<T>> T
valueOf(Class<T> enumType, String name)
返回帶指定名稱的指定枚舉類型的枚舉常量。class
package test; public class EnumTest { public enum Color { RED(255, 0, 0), BLUE(0, 0, 255), BLACK(0, 0, 0), YELLOW(255, 255, 0), GREEN(0, 255, 0); // 構造枚舉值,好比RED(255,0,0) private Color(int rv, int gv, int bv) { this.redValue = rv; this.greenValue = gv; this.blueValue = bv; } private int redValue; // 自定義數據域,private爲了封裝。 private int greenValue; private int blueValue; public static final Color[] values=Color.values(); public static Color valueOf(int i) { return values[i]; } public String toString() { // 覆蓋了父類Enum的toString() return super.toString() + "(" + redValue + "," + greenValue + "," + blueValue + ")"; } } public enum ColorType{ Red(Color.RED), Blue(Color.BLUE), Black(Color.BLACK), Yellow(Color.YELLOW), Green(Color.GREEN); private Color colorId; private ColorType(Color colorId) { this.colorId=colorId; } public static ColorType[] a=ColorType.values(); public static ColorType valueOf(int i) { return a[i]; } public String toString() { return super.toString()+"-------------->"+colorId.toString(); } } public static void main(String args[]) { // Color colors=new Color(100,200,300); //wrong Color color = Color.RED; Color colorYellow=Color.YELLOW; System.out.println(color); // 調用了toString()方法 System.out.println(color.ordinal()); System.out.println(color.compareTo(colorYellow)); //返回的是兩個枚舉值的順序之差 System.out.println(Color.valueOf("BLUE")); System.out.println(Color.valueOf(1)); //重寫valueOf方法 System.out.println(ColorType.valueOf(2).toString()); } }
運行結果:test
RED(255,0,0) 0 -3 BLUE(0,0,255) BLUE(0,0,255) Black-------------->BLACK(0,0,0)
自定義方法:方法
package test; public class EnumTest3 { public enum EnumTest { MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6) { @Override public boolean isRest() { return true; } }, SUN(0) { @Override public boolean isRest() { return true; } }; private int value; private EnumTest(int value) { this.value = value; } public int getValue() { return value; } public boolean isRest() { return false; } } public static void main(String[] args) { System.out.println("EnumTest.FRI 的 value = " + EnumTest.SAT.isRest()); } }
輸出結果:im
EnumTest.FRI 的 value = true