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进行判断。
上一篇: JavaScript基础-六种数据类型