那些你暗自努力的时光,终究会照亮你前行的路
—— 24.6.24
一、枚举介绍(开发中表示状态)
1.概述:
五大引用数据类型:类型、数组、接口、注解、枚举
2.定义:
public enum 枚举类名{
}
所有的枚举类父类都是Enum
3.定义枚举值
a、枚举值特点:
① 都是static final,但是定义的时候不要写出来,写出来报错
② 写完所有的枚举值之后,最后加个;
③ 枚举值名字要大写 ——> 开发习惯
b、使用:类名直接调用
c、注意:每一个枚举值都是当前枚举类的对象
4.问题:
枚举类中的枚举值都是什么类型的?
本类类型
5.枚举类中的其他成员:构造
在枚举类中定义的构造,默认都是private的
// State 状态
public enum State {
// State DaiFaHuo = new State();
DaiFaHuo,
// State YiFaHuo = new State();
YiFaHuo,
// State YunShuZhong = new State();
YunShuZhong,
// State YiSongDa = new State();
YiSongDa;
private String name;
private String address;
private State(){
this.name = "";
}
}
6.枚举类的使用场最:
表示对象的状态
State
// State 状态
public enum State {
// State DaiFaHuo = new State();
// State DaiFaHuo = new State("待付款");
DaiFaHuo("待付款"),
// State YiFaHuo = new State();
// State DaiFaHuo = new State("已发货");
YiFaHuo("已发货"),
// State YunShuZhong = new State();
// State DaiFaHuo = new State("运输中");
YunShuZhong("运输中"),
// State YiSongDa = new State();
// State DaiFaHuo = new State("已送达");
YiSongDa("已送达");
private String name;
private State(){
}
private State(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Test文件
public class Demo345Test {
public static void main(String[] args) {
State yiSongDa = State.YiSongDa;
System.out.println(yiSongDa);
State yiFaHuo = State.YiFaHuo;
System.out.println(yiFaHuo.getName());
}
}
二、枚举的方法_Enum
String toString() 返回枚举值的名字
values() 返回所有的枚举值
valueof(String str) 将一个字符串转成枚举类型
public class Demo346EnumMethod {
public static void main(String[] args) {
String string = State.YiFaHuo.toString();
System.out.println(string);
System.out.println("——————————————————————————");
State[] values = State.values();
for (State value : values) {
System.out.println(value);
}
System.out.println("——————————————————————————");
State yisongda = State.valueOf("YiSongDa");
System.out.println(yisongda);
System.out.println(yisongda.getName());
}
}