浏览 6187 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-28
/** * JDK1.5 枚举高级应用(向枚举值对象中添加变量和方法) * * @author 张明学 * */ public class EnumStudy { public static void main(String[] args) { WeekDay weekDay = WeekDay.SUN; System.out.println("对象本身:" + weekDay);// 对象本身:SUN System.out.println("枚举name方法" + weekDay.name());// 枚举name方法SUN System.out.println("枚举ordinal方法:序号" + weekDay.ordinal());// 枚举ordinal方法:序号0 System.out.println("枚举toString方法" + weekDay.toString());// 枚举toString方法SUN // valueOf()方法:将String转化成枚举对象 System.out.println(WeekDay.valueOf("FRI")); // values()方法:返回所有的枚举值 System.out.println(WeekDay.values().length); for (WeekDay wd : WeekDay.values()) { System.out.println(wd); } // ************枚举高级应用************ \\ System.out.println("----------------"); // 枚举的每个值都是一个对象,它们都有构造方法,我们可给它重构一些构造方法 // 每次第一个次使用枚举值时,它会为所有枚举值都实例化一次 System.out.println(WeekDay2.SUN); System.out.println(WeekDay2.TUE); System.out.println("----------------"); // 枚举的每个值都是一个对象,我们也可以为它们添加一些属性和方法 TranfficLamp lamp = TranfficLamp.GREEN; // TranfficLamp枚举添加的特有的属性 System.out.println(lamp.time); // TranfficLamp枚举添加的特有的方法 System.out.println(lamp.nextLamp()); } // 普通的枚举 public enum WeekDay { SUN, MON, TUE, WED, THI, FRI, SAT; } // 有多个构造方法的枚举 public enum WeekDay2 { SUN(0), MON(1), TUE(), WED, THI, FRI, SAT; // 所有的方法或其它必须放在枚举值的下面 // 枚举的构造方法必须是private的 private WeekDay2() { System.out.println("调用第一个构造方法"); } private WeekDay2(int day) { System.out.println("调用第二个构造方法"); } } // 有抽象方法和属性的枚举 public enum TranfficLamp { RED(30) { public TranfficLamp nextLamp() { return GREEN; } }, GREEN(45) { public TranfficLamp nextLamp() { return YELLOW; } }, YELLOW(5) { public TranfficLamp nextLamp() { return RED; } }; // 该枚举有一个抽象方法 public abstract TranfficLamp nextLamp(); // 该枚举有一个属性 public int time; // 该枚举的构造方法必须要有一个int类型参数 private TranfficLamp(int time) { this.time = time; } } } 输出结果:
对象本身:SUN 枚举name方法SUN 枚举ordinal方法:序号0 枚举toString方法SUN FRI 7 SUN MON TUE WED THI FRI SAT ---------------- 调用第二个构造方法 调用第二个构造方法 调用第一个构造方法 调用第一个构造方法 调用第一个构造方法 调用第一个构造方法 调用第一个构造方法 SUN TUE ---------------- 45 YELLOW
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |