參考:
1.Java enum用法詳解 (這篇寫得很詳細,可以直接看這篇)
2.Java enum 常見的方法(與1.類似)
3.https://docs.oracle.com/javase/8/docs/api/index.html Java API文檔
4.Java 枚舉(enum) 詳解7種常見的用法(較詳細,推薦)
代碼示例:
(1)
public class TestEnum {
public static void main(String[] args) {
Color c1 = Color.RED;
System.out.println(c1.toString());
Color c2 = Color.GREEN;
Color c3 = Color.GREEN;
System.out.println("c2=c3?"+(c2==c3));//true
System.out.println(c1); //RED
Color arr[] = Color.values();
for (Color col : arr){
System.out.println(col + " at index "+ col.ordinal());//RED at index 0 GREEN at index 1 BLUE at index 2
}
System.out.println(Color.valueOf("RED"));//輸出toString()的返回值,默認是RED
//此行代碼會返回IllegalArgumentException 異常,因爲Color枚舉類裏沒有名爲WHITE的常量
//System.out.println(Color.valueOf("WHITE"));
}
}
enum Color{
RED, GREEN("light"),BLUE(255,23,233);
private String level;
private int r,g,b;
//編寫帶參和不帶參的構造器
Color(){}
Color(String level) {
this.level = level;
}
Color(int r, int g, int b) {
this.r = r;
this.g = g;
this.b = b;
}
// @Override
// public String toString(){
// return "level:"+this.level+" ("+this.r+","+this.g+","+this.b+")";
//
// }
}
運行結果:
(2)試運行參考2中的weekday
import java.util.EnumSet;
public class TestEnum2 {
public static void main(String[] args) {
EnumSet<WeekDay> week = EnumSet.noneOf(WeekDay.class);
week.add(WeekDay.MON);
System.out.println("EnumSet中的元素:" + week);
week.remove(WeekDay.MON);
System.out.println("EnumSet中的元素:" + week);
week.addAll(EnumSet.complementOf(week));
System.out.println("EnumSet中的元素:" + week);
week.removeAll(EnumSet.range(WeekDay.FRI, WeekDay.SAT));
System.out.println("EnumSet中的元素:" + week);
}
}
enum WeekDay{
MON("Monday"),TUE("Tuesday"),WED("Wednesday"),THU("Thursday"),FRI("Friday"),SAT("Saturday"),SUN("Sunday");
private final String day;
private WeekDay(String day) {
this.day = day;
}
public String getDay() {
return this.day;
}
}
運行結果: