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

java枚举

2011-11-28 22:03 302 查看
1、枚举概述

在J2SE5.0中新增加了枚举这个类型,枚举是一种特殊的类,其中每个元素都是该类的一个实例对象。

2.用普通类如何实现枚举的功能,就是规定只能返回几个实例对象。

//用普通类业实现枚举功能
publicclassWeekday{

//将构造方法私有化
privateWeekday(){}
//定义几个实例变量
publicstaticWeekdayMON=newWeekday();
publicstaticWeekdayTUS=newWeekday();
publicstaticWeekdayWES=newWeekday();
publicstaticWeekdayTHI=newWeekday();
publicstaticWeekdayFRI=newWeekday();
publicstaticWeekdaySAT=newWeekday();
publicstaticWeekdaySUN=newWeekday();
publicvoidmethod(){
//dosomething

}
}



3、枚举的定义,使用enum关键字进行定义

publicenumWeekday

{

SUN,MON,TUE,WED,THI,FRI,SAT;//后面有其它成员是必须带分号,如果没有,可以不带

}

4、枚举的实质还是一个类,所以枚举有构造方法,只是构造方法必须是private的

privateWeekday(){}//构造方法必须为私有的,枚举元素的默认构造方法无参构造方法

privateWeeday(intindex){}//如果枚举的元素要调用有参构造方法时,则需要用这种方式进行传值SUN(value)

5,枚举还可以有变量、常量、普通方法和抽象方法。下面是定义的一个交通灯枚举类,可以很好说明枚举的组成部分

publicenumTraffic{
RED(30){//定义的枚举元素

@Override
publicTrafficnext(){//每个元素必须实现枚举类的抽象方法
//TODOAuto-generatedmethodstub
returnGREEN;
}

},
GREEN(20)
{
publicTrafficnext(){
//TODOAuto-generatedmethodstub
returnYELLOW;
}

},
YELLOW(3)
{
publicTrafficnext(){
//TODOAuto-generatedmethodstub
returnRED;
}
publicStringtoString()
{
return"黄灯亮"+this.YELLOW.time;
}
};
privateinttime;//变量
privateTraffic(){}//枚举的无参构造方法
privateTraffic(inttime){this.time=time;}//表示这个灯亮的时间
publicabstractTrafficnext();//定义一个抽象方法

}





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