参考:
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;
}
}
运行结果: