枚举
枚举是Java的五个引用数据类型类、数组、接口、注解、枚举之中的一种。枚举一般用来表示对象的状态。
所有的枚举类父类都是Enum,格式:
public enum 枚举类名{
}
枚举值
- 枚举值特点:都是static final,但是定义的时候不要写出来,写出来报错,写完所有的枚举值之后,最后一个加;建议枚举值名字要大写。
- 使用:类名直接调用
- 每一个枚举值都是当前枚举类的对象
构造方法
在枚举类中定义的构造方法,默认都是private的。
枚举的使用
枚举一般用来表示对象的状态。
@Getter
public enum Test {
STATE1("状态1"), //相当于Test STATE1 = new State("状态1")
STATE2("状态2"), //相当于Test STATE1 = new State("状态1")
STATE3("状态3"), //相当于Test STATE1 = new State("状态1")
STATE4("状态4"); //相当于Test STATE1 = new State("状态1")
private final String name;
Test(String name) {
this.name = name;
}
}
枚举的方法
String toString()
:返回枚举值的名字
public class Main {
public static void main(String[] args) throws Exception {
Test state2 = Test.STATE2;
System.out.println(state2); //默认调用toString()
String string = Test.STATE1.toString();
System.out.println("string = " + string);
}
}
values()
:返回所有的枚举值
public class Main {
public static void main(String[] args) throws Exception {
for (Test value : Test.values()) {
System.out.println(value.name());
}
}
}
valueOf(String str)
:将一个字符串转成枚举类型
public class Main {
public static void main(String[] args) throws Exception {
Test state1 = Test.valueOf("STATE1");
System.out.println("state1 = " + state1);
}
}