java中枚举的常见用法
Posted 邓维
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中枚举的常见用法相关的知识,希望对你有一定的参考价值。
java中枚举的常见用法
概念:
首先枚举是一个特殊的class,所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类
他的构造方法强制被私有化。每个枚举变量都是枚举类的实例,每个成员变量都是final static修饰
一、枚举型常量
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中枚举的常见用法的主要内容,如果未能解决你的问题,请参考以下文章