Java 枚举(enum) 个人对于枚举的一点理解

JDK1.5引入了新的类型——枚举 , 但是学习的时候没有涉及到. 无意中看到有人使用,就了解了一下. 在JDK1.5 之前,我们定义常量都是: public static final.... 。 但是有了枚举之后,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
public enum PeopleEnum{
	WORK,SLEEP,EAT,GAME; //这几个是常量
}
参考了一篇访问量很高的博客 ?,但是还是没看懂. 参考: 然后一直找资料 和 写demo 才理解了(下面代码有详细注释):

枚举类:

package top.jacktu;

public enum Color{
	/**
		类下面必须先定义 常量,常量就是Color类型
		
		要使用构造方法,当构造方法没有参数时 可以省略 括号
	 */
	RED("红色", 1), GREEN("红色", 1), BLANK("红色", 1), YELLO("红色", 1),OTHER;
	
	protected String name;
	protected int index;

	private Color(String name, int index) {
		this.name = name;
		this.index = index;
	}
	private Color() {
	}
}

枚举的常量的 测试 行后注释,是输出的结果:

public class ColorTest {

	@Test
	public void Test1() {
		//枚举里的常量 的类型
		System.out.println(Color.RED.getClass());//class top.jacktu.Color
		
		//输出枚举常量 (自动调用了该对象 toString 方法)
		System.out.println(Color.RED);//RED
		
		//枚举的 名称为 RED常量,与 字符串 RED 比较
		System.out.println(Color.RED.equals("RED"));//false
		
		//枚举常量 toString 后 与 RED ==比较
		System.out.println(Color.RED.toString() == ("RED"));//true

		//枚举常量 toString 后 与 RED equals 比较
		System.out.println(Color.RED.toString() .equals("RED"));//true
	}
}
经验分享 程序员 微信小程序 职场和发展