一、Java 枚举(enum)
1、Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。
2、枚举类型可以取代以往常量的定义方式,即将常量封装在类或接口中。此外,它还提供了安全检查功能
。枚举类型本质上还是以类的形式存在的。
二、设置枚举常量
2.1、常规定义常量方法:通过接口
设置常量时,我们通常将常量放置在接口中,这样在程序中就可以直接使用。该常量不能被修改.因为在接口中定义常量时,该常量的修饰符为 final 与 static。常规定义常量的代码如下:
public interface Color {
public static final String Color _A = "RED";
public static final String Color _B = "GREEN";
}
2.2、使用枚举定义常量
enum Color
{
RED,
GREEN,
BLUE;
}
三、获取枚举常量
Color c1 = Color.RED;
System.out.println(c1);
//输出
RED
四、比较枚举常量
比较枚举常量是否相等可以直接使用==
Color c1 = Color.RED;
if (c1== Color.RED) {
// 执行相应的逻辑
}
五、迭代枚举常量
for (Color c1 : Color .values()) {
System.out.println(c1);
}
//输出
RED
GREEN
BLUE
六、枚举类型的常用方法
======================================================================================================================
方法 具体含义 使用方法 举例
values() 该方法可以将枚举类型成员以数组的形式返回 枚举类型名称.values() Color.values()
valueof() 该方法可以实现将普通字符串转换为枚举实例 枚举类型名称.valueof() Color.valueof("abc")
compareTo() 该方法用于比较两个枚举对象在定义时的顺序 枚举对象.compareTo() c1.compareTo(c2)
ordinal() 该方法用于得到枚举成员的位置索引 枚举对象.ordinal() c1.ordinal()
6.1、values()方法
enum SeasonEnum { // 四季枚举
SPRING, SUMMER, AUTUMN, WINTER
}
class test {
public static void main(String[] args) {
SeasonEnum es[] = SeasonEnum.values();
//遍历方式一
for (int i = 0; i < es.length; i++) {
System.out.println("枚举常量:" + es[i]);
}
//遍历方式二
for (SeasonEnum s1 : SeasonEnum.values()) {
System.out.println("枚举常量:" + s1);
}
}
}
//运行结果
//遍历方式一
枚举常量:SPRING
枚举常量:SUMMER
枚举常量:AUTUMN
枚举常量:WINTER
//遍历方式二
枚举常量:SPRING
枚举常量:SUMMER
枚举常量:AUTUMN
枚举常量:WINTER
七、枚举一般用在switch语句中
enum Color
{
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
Color myVar = Color.BLUE;
switch(myVar) {
case RED:
System.out.println("红色");
break;
case GREEN:
System.out.println("绿色");
break;
case BLUE:
System.out.println("蓝色");
break;
}
}
}
//运行结果
蓝色