例如,定义表示一周内每一天的常量(简单起见,只列出前三天),这是枚举最常用的方式。
public enum Week{
MONDAY,
TUSEDAY,
WEDNESDAY
}
假设要为一周内的每一天定义一个类,其中包含两个方法:getDayOfWeek和getName,分别返回这一天是这周的第
几天和这一天的名字(如"星期一”、“星期二”)。按一般的做法,需要定义一个抽象类或接口,以及7个子类(分别对应一
周内的每一天),很可能还需要一个包含这7个类的对象引用的类。例如:
public abstract class WeekDay{
public abstract int getDayOfWeek();
public abstract String getName();
}
public class MonDay{
public int getDayOfWeek(){
return 1;
}
public String getName(){
return "星期一“;
}
}
public class Week{
public final static WeekDay MON = new MonDay();
}
这样会增加很多的类,此时使用枚举是一个不错的解决办法。
public enum Week{
MonDay{
public int getDayOfWeek(){
return 1;
}
public String getName(){
return "星期一“;
}
TuseDay{
public int getDayOfWeek(){
return 2;
}
public String getName(){
return "星期二“;
}
public abstract int getDayOfWeek();
public abstract String getName();
}
这样一个枚举就搞定了。
我觉得这种方法很适用于单实例的具有常量特性的简单对象。