目录
1、认识枚举类
- 枚举类是一种特殊的类。
枚举类的写法

特点:
- 枚举类中的第一行,只能写枚举类的对象名称,且要用逗号隔开。
- 这些名称,本质是常量,每个常量都记住了枚举类的一个对象。
枚举类的特点

A枚举类
java
public enum A {
//枚举类第一行只能罗列枚举对象的名称这些名称本质是常量。
x, y, z;
}
Test测试类
java
public class Test {
public static void main(String[] args) {
A a1 = A.x;
A a2 = A.y;
System.out.println(a1); //打印的是x说明toString方法被重写
System.out.println(a2);
System.out.println(a1.ordinal()); //得到a1的索引 // 0
System.out.println(a2.ordinal()); //1
//获取枚举类中所有的枚举值
System.out.println(A.values()); //[x, y, z]
}
}
/*
输出结果:
x
y
0
1
[Lenumdemo.A;@6f2b958e
*/
2、枚举类常见应用场景
枚举类很适合做信息分类和标志。

Constant 常量类
java
public class Constant {
//常量包
public static final int UP = 0;
public static final int DOWN = 1;
public static final int LEFT = 2;
public static final int RIGTH = 3;
}
Direction 类:枚举类
java
public enum Direction {
UP, DOWN, LEFT, RIGTH;
}
Test类测试类
java
public class Test {
public static void main(String[] args) {
//需求:模拟上下左右移动图片的场景
//第一种方法是常量做信息标志和分类:但参数值不受约束
move(Constant.UP);
//第二种方法枚举做信息标志和分类
System.out.println("___________第二种方法枚举做信息标志和分类___________");
move1(Direction.DOWN);
}
//方法2:用枚举做信息标志和分类
public static void move1(Direction direction){
switch (direction){
case UP:
System.out.println("向上移动");
break;
case DOWN:
System.out.println("向下移动");
break;
case LEFT:
System.out.println("向左移动");
break;
case RIGTH:
System.out.println("向右移动");
break;
default:
System.out.println("无效的移动方向");
}
}
//用常量做信息标志和分类
public static void move(int direction){
switch (direction){
case Constant.UP:
System.out.println("向上移动");
break;
case Constant.DOWN:
System.out.println("向下移动");
break;
case Constant.LEFT:
System.out.println("向左移动");
break;
case Constant.RIGTH:
System.out.println("向右移动");
break;
default:
System.out.println("无效的移动方向");
}
}
}
/*
输出结果:
向上移动
___________第二种方法枚举做信息标志和分类___________
向下移动
*/