一、概念
枚举是一种特殊的类。
格式:
修饰符 enum 枚举类名{
对象名称1,对象名称2,....;
其他成员...
}
二、枚举类的特点
1.枚举类的第一行只能罗列一些名称,并且这些名称都是常量,每个常量记住一个枚举类对象
2.枚举类的构造器都是私有的,所以枚举类对外不能创建对象
3.枚举都是最终类,不可以被继承
4.枚举类中,从第二行开始,可以定义类的其他各种成员
//枚举类提供一些额外的API
A[] as = A.values(); //拿到所有对象放在一个数组中
a1.getName(); // 拿名字
A a3 = A.valueOf("X"); // 给一个字符串,返回一个对象
a3.ordinal();//索引
三、抽象枚举
public enum B {
// X, Y, Z;//不能直接写因为不能直接构建对象
X(){
@Override
public void test(){}
}, //如此构建对象
Y("六六"){
@Override
public void test(){
System.out.println(getName());
}
};
public String getName() {
return name;
}
B(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
B() {
}
private String name;
public abstract void test();
}
四、枚举的应用场景
用来表示一组信息,然后作为参数传输,进行信息的分类和标志
硬编码不好:
优化(使用常量):
优化(枚举):
都不用带前缀,带前缀会报错