那些你暗自努力的时光,终究会照亮你前行的路
—— 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());}
}