天天看点

Java Enum(Java枚举)

参考:

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+")";
//		
//	}
}
           

运行结果:

Java Enum(Java枚举)

(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;
	}
}
           

运行结果:

Java Enum(Java枚举)