浏览 2122 次
锁定老帖子 主题:枚举的独特使用方法
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-24
例如,定义表示一周内每一天的常量(简单起见,只列出前三天),这是枚举最常用的方式。
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(); } 这样一个枚举就搞定了。
我觉得这种方法很适用于单实例的具有常量特性的简单对象。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-26
第一次见到枚举这么写,有点画蛇添足的感觉
public enum Week{ MONDAY(1, "星期一"), SUNDAY(7, "星期日"); private final int dayOfWeek; private final String name; Week(int dayOfWeek, String name){ this.dayOfWeek = dayOfWeek; this.name = name; } public int getDayOfWeek(){ return this.dayOfWeek; } public String getName(){ return this.name; } } 这才是比较通用的做法 |
|
返回顶楼 | |