Java枚举以及在项目中的实际应用:?
一:枚举是什么:
枚举是在jsk1.5之后出现的新特性,存放在Java.long包。
二:枚举类与普通类有什么区别?
1,枚举类继承了Java.lang.Enum类,而不是默认的Object类,并且实现了java.lang.Serializable和java.lang.Comparable接口。
2: 非抽象的枚举类默认会使用final修饰,因此不能派生子类.
3:枚举类的所有实例(枚举值)必须在枚举类的第一行显示的列出,否则这个枚举类将永远不能产生实例.
4:比较枚举的大小的时候,equals和是一样的(枚举equals的底层使用了)
三:枚举定义示例:
public enum ApparatusAlarmEnum {
//前面字母随便命名,括号中的编码和名称要一一对应,实例必须在枚举类的第一行显示的列出
TM("1","天马"),
LX("2","流星"),
SUP("3","超人"),
SDX("4","闪电侠"),
DZ("5","队长"),
ZZX("6","蜘蛛侠");
//成员变量
private String code;
private String name;
//构造方法
ApparatusAlarmEnum(String code, String name){
this.code = code;
this.name = name;
}
//get set方法
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static String getNameByCode(String code){
for (ApparatusAlarmEnum value : values()) {
if(value.code.equals(code)){
return value.name;
}
}
//没有则返回null;
return "null";
}
}
测试
* @description : 测试枚举获取名字
* @Version V1.0
**/
public class EnumGetName {
public static void main(String[] args) {
String name = ApparatusAlarmEnum.getNameByCode(String.valueOf("1"));
System.out.println(name);
}
}
运行代码 输出 天马
四:什么情况下考虑使用枚举呢???
1:在项目开发的过程中,总会碰到固定的名词的多次使用,多个角色信息:设计师,工长,顾客,工人等等.这些信息是不会进行更改的,所以,为了我们方便调用以及提高代码的阅读性和后期维护性,我们可以使用枚举类来定义这些信息.