Java枚举类Enum
Java枚举类是特殊的类,可以用来表示一组常量。
比如颜色:
enum Color
{
RED,//各个常量之间用逗号隔开
BLUE,
GREEN;//以分号结尾
}
单个值输出枚举类中的值:
package text;
enum Color
{
RED, GREEN, BLUE;
}
public class Enum
{
// 执行输出结果
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
}
}
结果:RED
循环输出:
package text;
enum Color
{
RED, GREEN, BLUE;
}
public class Enum
{
// 执行输出结果
public static void main(String[] args)
{
Color[] c1 = Color.values();
for(Color col:c1) {
System.out.println(col);
}
}
}
values(), ordinal() 和 valueOf() 方法
enum 定义的枚举类默认继承了 java.lang.Enum类,并实现了 java.lang.Serializable 和java.lang.Comparable 两个接口。
values(), ordinal() 和 valueOf() 方法位于java.lang.Enum 类中:
-
values() 返回枚举类中所有的值。
-
ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
-
valueOf()方法返回指定字符串值的枚举常量。
用法:
package text;
enum Color
{
RED, GREEN, BLUE;
}
public class Enum
{
public static void main(String[] args)
{
// 调用 values()
Color[] c1 = Color.values();
// 迭代枚举
for (Color c2 : c1)
{
// 查看索引
System.out.println(c2 + " 索引号为: " + c2.ordinal());
}
// 使用 valueOf() 返回枚举常量
System.out.println(Color.valueOf("RED"));
}
}
结果:
RED 索引号为: 0
GREEN 索引号为: 1
BLUE 索引号为: 2
RED