——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
枚举是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。枚举类型放在窗体模块、标准模块或共用模块中的声明部分,通过enum语句来定义。
在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
如:
public enum Color{
RED,GREEN,YELLOW,BLANK
}
这样就把与颜色相关的常量放在一起。
还能在枚举中添加方法:
public enum Color{
//定义有哪些常量
RED("红色"),YELLOW("黄色"),GREEN("绿色"),BLUE("蓝色");
//保存颜色的名称
private String mName;
/**
构造方法,传入一个名字。
*/
private Color(String name){
mName = name;
}
public String getName(){
return mName;
}
}
覆盖枚举的方法,将toString方法给覆盖掉。
public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private int index;
// 构造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//覆盖方法
@Override
public String toString() {
return this.index+"_"+this.name;
}
}
枚举还能实现接口,因为所有枚举都继承自java.lang.Enum类,由于Java 不支持多继承,所以枚举对象不能再继承其他类。
public interface Behaviour {
void print();
String getInfo();
}
public enum Color implements Behaviour{
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private int index;
// 构造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//接口方法
@Override
public String getInfo() {
return this.name;
}
//接口方法
@Override
public void print() {
System.out.println(this.index+":"+this.name);
}
}
使用接口组织枚举。
public interface Food {
enum Coffee implements Food{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
}
enum Dessert implements Food{
FRUIT, CAKE, GELATO
}
}