您的位置:首页 > 编程语言 > Java开发

Java基础三: 枚举高级应用(向枚举值对象中添加变量和方法)

2010-05-28 18:45 351 查看
/**
* 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

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐