枚举
枚举是一种特殊类,
枚举用法
一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。
枚举enum的使用
1.枚举类的第一行只能罗列一些名称,这些名称都是常量,并且每个常量记住的都是枚举类的一个对象
2.枚举类的构造器都是私有的,枚举类对外不能创建对象
3.枚举都是最终类,不可以被继承
4.从第二行开始定义其他成员
例子
创建一个枚举类
public enum A {
// 注意枚举类的第一行必须罗列的是枚举对象的名字
x,y,z;
// public static final .A x;
//用常量来录用枚举类对象的名字
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
枚举的使用
public static void main(String[] args) {
A a1 = A.x;
// 1.枚举类的构造器是私有的,不能对外创建对象
System.out.println(a1);
// 2.枚举类的第一行都是常量,记住枚举类的对象
A a2= A.y; //枚举类的对象
// 3.枚举类一个一些额外的API
A[] as = A.values();//拿到全部对象
A a3 = A.valueOf("z");
System.out.println(a3.name());
//ordinal关键字返回枚举常量
System.out.println(a3.ordinal());
}
// 定义一个包含抽象方法的抽象类
abstract class AbstractAction {
public abstract void perform();
}
// 创建一个枚举类型,实现抽象类的方法
enum MyEnum implements AbstractAction {
ACTION1 {
@Override
public void perform() {
System.out.println("Performing action 1");
}
},
ACTION2 {
@Override
public void perform() {
System.out.println("Performing action 2");
}
};
// 这里是枚举类型的其他方法和字段(如果有的话)
}
// 使用枚举类型
public class Main {
public static void main(String[] args) {
MyEnum.ACTION1.perform(); // 输出 "Performing action 1"
MyEnum.ACTION2.perform(); // 输出 "Performing action 2"
}
}
public enum A {
// 注意枚举类的第一行必须罗列的是枚举对象的名字
x;//单例
}
枚举的运用场景
使用枚举做值匹配
public enum constant {
BOY,GIRL;
}
public static void main(String[] args) {
check(constant.BOY);
}
public static void check(constant sex){
switch (sex){
case BOY:
System.out.println("男生");
break;
case GIRL:
System.out.println("女生");
break;
}
}