1,定义常量
public enum WeekDay{ SUN,MON,TUE,WED,THT,FRI,SAT }
2,结合switch使用
public enum WeekDay{ SUN,MON,TUE,WED,THT,FRI,SAT } public class SelectDay{ WeekDay weekday=WeekDay.SUN; public void select(){ switch(weekday){ case SUN: weekday=WeekDay.SUN; break; ... } } }
3,向枚举添加新方法
public enum Color{ RED("红色",1),GREEN("绿色",2),WHITE("白色",3),YELLOW("黄色",4); //成员变量 private String name; private int index; //构造方法 private Color(String name,int index){ this.name=name; this.index=index; } //普通方法 public static String getName(int index){ for(Color c:Color.values){ if(c.getIndex()==index){ return c.name; } } return null; } //get set 方法 public String getName(){ return name; } public void setName(String name){ this.name=name; } public int getIndex(){ return index; } public void setIndex(int index){ this.index=index; } }
4,覆盖枚举方法
public enum Color{ RED("红色",1),GREEN("绿色",2),WHITE("白色",3),YELLOW("黄色",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; } }
5,实现接口
public interface Behavior{ void print(); Striing getInfo(); } public enum Color implements Behavior{ RED("红色",1),GREEN("绿色",2),WHITE("白色",3),YELLOW("黄色",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); } }
6,接口组织枚举
public interface Food{ enum Coffe implements Food{ BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO; } enum Dessert implements Food{ FRUIT,CAKE,GELATO; } }
7,枚举集合
public class Test{ public static void main(String[] args){ EnumSet<WeekDay> week=EnumSet.noneOf(WeekDay.class); week.add(WeekDay.MON); System.out.println("EnumSet中的元素:"+week); week.remove(WeekDay.MON); System.out.println("EnumSet中的元素:"+week); week.addAll(EnumSet.complementOf(week)); System.out.println("EnumSet中的元素:"+week); week.removeAll(EnumSet.range(WeekDay.FRI,WeekDay.SAT)); System.out.println("EnumSet中的元素:"+week); } }