欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JDK1.5以后添加的枚举类型

程序员文章站 2022-06-04 23:18:31
...

首先,枚举的使用场景:

在我们在需要群组并使用枚举类型集的时候,可以很方便的处理。

1.创建一个枚举类型

public enum Spiciness {
	TIRED,CAN,STILL,MY,HEART
}

创建了一个名为Spiciness的枚举类型,具有5个常量值。因为枚举类型的实例都是常量值,按照惯例,写为大写。

2.使用枚举的实例

class Test1{
	public static void main(String[] args) {
		Spiciness s =Spiciness.HEART;
		System.out.println(s);
	}
}

需要注意的地方:

在创建枚举类型的时候,编译器会自动添加一些枚举所拥有的特性。

eg:创建toString()方法。创建ordinal()方法----用来表示某个特定常量的声明顺序。还有就是values()方法(静态的),这个方法用来按照enum常量的声明顺序,产生由这些常量值构成的数组。此数组可以遍历。具体如下

public static void main(String[] args) {
		for (Spiciness s : Spiciness.values()) {
			System.out.println("s:"+s+s.ordinal());
		}
	}

尽管enum看起来是一种新的数据类型,但是它的确是一个类,并且有自己的方法。

常用实例

即你可以声明一个enum类型,Spiciness s;然后当switch括号里面需要判断的时候将声明的枚举类型传入进去,依次使用case来选择。

例子:自己写一个枚举类型

请看代码段

public enum systemResult {
	/**
	 * 成功
	 */
	Success(0),
	/**
	 */
	Failed(-1);
	/**
	 * 定义枚举值
	 */
	private int value;
	private systemResult(int value) {
		this.value = value;
	}
	
	/**
	 * 拿到value的方法
	 */
	public int getValue() {
		return value;
	}
	/**
	 * 将一个值转化为枚举值
	 */
	public static systemResult toEnum(int a) {
		switch(a) {
		case 0: return Success;
		case 1: return Failed;
		default: throw new IllegalArgumentException("不可识别的值"+a);
		}
	}
	
}

要注意的几点

①:枚举类型的构造函数是私有化的。

②:Success(0);这句话就是利用了私有化的构造函数。

③:经典使用场景,也就是上面代码的toEnum函数,传进来一个int类型的值,然后用switch进行判断。