一,常量定义
public enum WeekDay {
SUN, MON, TUE, WED, THT, FRI, SAT
}
二,swich
public enum WeekDay {
SUN, MON, TUE, WED, THT, FRI, SAT
}
public static void main(String args[]){
WeekDay weekday = WeekDay.SUN;
switch(weekday){
case SUN:
System.out.println("今天是星期一");
break;
...
default:
System.out.println("这周过完了。。。");
}
}
三,向枚举添加新方法
public enum week {
SUN("星期一", 1), MON("星期二", 2), TUE("星期三", 3), WED("星期四", 4), THT("星期五", 5), FRI("星期六", 6), SAT("星期天", 7);
// 成员变量
private String name;
private int index;
// 构造方法(删除构造函数会报错)
private week(String name, int index) {
this.name = name;
this.index = index;
}
// 普通方法
public static void getAllName() {
for (week w : week.values())
System.out.println(w.name + ": " + w.index);
//或使用System.out.println(w.toString());
}
// 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;
}
@Override
public String toString() {
return "week{" +
"name='" + name + '\'' +
", index=" + index +
'}';
}
}
public static void main(String args[]){
week.FRI.setName("星期六过了");
week.getAllName();
}
执行结果:
星期一: 1
星期二: 2
星期三: 3
星期四: 4
星期五: 5
星期六过了: 6
星期天: 7
四,实现接口
public interface Thing {
public void print();
public String getInfoName();
public Integer getInfoIndex();
}
public enum week implements Thing{
SUN("星期一", 1), MON("星期二", 2), TUE("星期三", 3), WED("星期四", 4), THT("星期五", 5), FRI("星期六", 6), SAT("星期天", 7);
//接口方法
@Override
public void print(){
//System.out.println(this.name + ": " + this.index);
System.out.println(getInfoName() + ": " + getInfoIndex());
}
//接口方法
@Override
public String getInfoName(){
return this.name;
}
//接口方法
@Override
public Integer getInfoIndex(){
return this.index;
}
// 成员变量
private String name;
private int index;
// 构造方法
private week(String name, int index) {
this.name = name;
this.index = index;
}
// 普通方法
public static void getAllName() {
for (week w : week.values())
System.out.println(w.toString());
}
// 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;
}
@Override
public String toString() {
return "week{" +
"name='" + name + '\'' +
", index=" + index +
'}';
}
}
public static void main(String args[]){
week.FRI.setName("星期六过了");
week w = week.FRI;
w.print();
}
运行结果:
星期六过了: 6
五,接口组织枚举
public interface Food {
enum Coffee implements Food{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
}
enum Dessert implements Food{
FRUIT, CAKE, GELATO
}
}
public static void main(String args[]){
for (Food.Coffee c : Food.Coffee.values())
System.out.println(c);
System.out.println("-----------------------------------------");
for (Food.Dessert d : Food.Dessert.values())
System.out.println(d);
}
运行结果:
BLACK_COFFEE
DECAF_COFFEE
LATTE
CAPPUCCINO
-----------------------------------------
FRUIT
CAKE
GELATO
六,枚举集合
//具体枚举方法依旧使用上面的week
public static void main(String[] args) {
EnumSet<week> w = EnumSet.noneOf(week.class);
w.add(week.MON);
System.out.println("EnumSet中的元素:" + w);
w.remove(week.MON);
System.out.println("EnumSet中的元素:" + w);
w.addAll(EnumSet.complementOf(w));
System.out.println("EnumSet中的元素:" + w);
w.removeAll(EnumSet.range(week.FRI, week.SAT));
System.out.println("EnumSet中的元素:" + w);
}
执行结果:
EnumSet中的元素:[week{name='星期二', index=2}]
EnumSet中的元素:[]
EnumSet中的元素:[week{name='星期一', index=1}, week{name='星期二', index=2}, week{name='星期三', index=3}, week{name='星期四', index=4}, week{name='星期五', index=5}, week{name='星期六', index=6}, week{name='星期天', index=7}]
EnumSet中的元素:[week{name='星期一', index=1}, week{name='星期二', index=2}, week{name='星期三', index=3}, week{name='星期四', index=4}, week{name='星期五', index=5}]
推荐一篇文章,讲的很好,推荐阅读: www.cnblogs.com/qing-gee/p/…