枚举的特征
①枚举类也是一种特殊形式的Java类。
②枚举类中声明的每一个枚举值代表枚举类的一个实例对象,所以枚举的所有实例对象都是常量
③与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。
④枚举类也可以实现接口、或继承抽象类。
⑤JDK5中扩展了swith语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型。
常用方法
Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法。
常用方法:
name() 此方法返回enum实例声明时的名字,与toString()方法效果相同
ordinal() 此方法返回每个enum实例在声明时的顺序
valueof(Class enumClass, String name)
values() 此方法为隐式方法,每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便。
带构造方法的枚举
①构造方法必须定义为private
很明显,用到枚举是不想再有新的实例,枚举中的元素就是所有的实例
②构造方法可以带有参数
和类的使用一样
③枚举常量RED和RED()一样,都是调用默认的构造方法
单例的枚举实现
若枚举类只有一个枚举值,则可以当作单例设计模式使用。下面是用枚举实现的单例:
enum DB{
instance;//单实例
public void function(){
System.out.println("枚举中的其它方法");
}
}
调用:
//枚举单例
DB d=DB.instance;
d.function();