java枚举类型
首先,在Java中,枚举类型其实是相当于类类型,在枚举类型的定义中,我们可以加入构造函数以及各种静态的非静态的成员函数,我们也可以用一个类来模拟枚举类型。
下面是代码:
enum Week
{
SUN(0),MON(1),TUE(2),WED(3),THU(4),FRI(5),SAT(6);//只能是这种格式,因为下面的构造函数限制了,除非加上无参构造函数
int value;
Week(int value) //相当于构造函数,我们赋予了每个成员一个value值
{
this.value=value;
}
public String toString() //重写toString方法,使输出对象时更加直观
{
return value+"";
}
}
class WeekDay{ //用一个类来模拟上述的枚举类型
public static final WeekDay SUN=new WeekDay(0); //相当于是静态的对象成员
public static final WeekDay MON=new WeekDay(1);
public static final WeekDay TUE=new WeekDay(2);
public static final WeekDay WED=new WeekDay(3);
public static final WeekDay THU=new WeekDay(4);
public static final WeekDay FRI=new WeekDay(5);
public static final WeekDay SAT=new WeekDay(6);
int value;
private WeekDay(int value) //构造函数
{
this.value=value;
}
public String toString() //重写toString方法
{
return value+"";
}
public static WeekDay[] values()
{
return new WeekDay[]{SUN,MON,TUE,WED,THU,FRI,SAT};
}
}
public class EnumTest {
public static void main(String[] args) {
Week week=Week.FRI;
System.out.println(week);
for(Week w:Week.values())
{
System.out.println(w);
System.out.println(Week.valueOf("SUN")); //valueOf方法把字符串类型转化成对应的枚举类型
}
System.out.println("=================");
WeekDay day=WeekDay.FRI;
System.out.println(day);
for(WeekDay d:WeekDay.values()) //values方法可以将所有的枚举类型保存到一个该枚举类型的数组中,其实相当于一个对象数组
{
System.out.println(d);
}
}
}
还没有评论,来说两句吧...