java中枚举的常见用法
2020-12-22 14:28
标签:inter comm @param 实例 static 其他 string for api java中枚举的常见用法 概念: 首先枚举是一个特殊的class,所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类 他的构造方法强制被私有化。每个枚举变量都是枚举类的实例,每个成员变量都是final static修饰 为什么要通过枚举实现接口呢?考虑如下需求: java中枚举的常见用法 标签:inter comm @param 实例 static 其他 string for api 原文地址:https://www.cnblogs.com/dw3306/p/13215491.html一、枚举型常量
public enum ColorEnum {
//每个枚举变量都是枚举类ColorEnum的实例,相当于RED=new ColorEnum(1),按序号来。
//每个成员变量都是final static修饰
RED, GREEN, BLANK, YELLOW;
}
二、带一个参数的枚举
public enum TypeEnum {
FIREWALL("firewall"),
SECRET("secretMac"),
BALANCE("f5");
private String typeName;
TypeEnum(String typeName) {
this.typeName = typeName;
}
/**
* 根据类型的名称,返回类型的枚举实例。
*
* @param typeName 类型名称
*/
public static TypeEnum fromTypeName(String typeName) {
for (TypeEnum type : TypeEnum.values()) {
if (type.getTypeName().equals(typeName)) {
return type;
}
}
return null;
}
public String getTypeName() {
return this.typeName;
}
}
三、Java枚举实现接口
1.我希望通过接口定义API
2.我希望接口的实现类有限,并且每个实现类都只需要一个实例
此时,可以利用枚举类型实例受限的特效,通过枚举实现接口,从而达到我们的需求。public interface FlyAble {
public void fly();
public String getName();
}
public enum FlyType implements FlyAble{
Bird("鸟") {
@Override
public void fly() {
System.out.println("鸟用翅膀飞...");
}
},
Plane("飞机") {
@Override
public void fly() {
System.out.println("飞机用引擎飞...");
}
}
;
private String name;
private FlyType(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
}
上一篇:java 方法的重载
下一篇:Python函数修饰符@的使用