/*
*enum:枚举,可以限定本类的对象。此处罗列了一些基本操作。
*/
package classfile;
public class EnumDemo
{
public static void main(String[] args)
{
method_base();
method_extension();
}
//枚举的基本方法
public static void method_base()
{
WeekDay weekDay = WeekDay.WEDNESDAY;
System.out.println("enum的基本方法toString:"+weekDay.toString());
System.out.println("enum的基本方法name:"+weekDay.name());
System.out.println("enum的基本方法ordinal(顺序):"+weekDay.ordinal());
System.out.println("enum的静态方法valueOf:"+WeekDay.valueOf("THURSDAY"));
System.out.println("enum的静态方法values:"+WeekDay.values().length);
}
public static void method_extension()
{
//枚举可以通过构造方法传值
System.out.println("enum可以通过构造方法传值:"+WeekDay.SUNDAY.day);
//调用枚举的自定义的方法
System.out.println("调用枚举的自定义的方法:"+TrafficLamp.RED.nextLamp());
}
//内部枚举
public enum WeekDay
{
//枚举的元素列表必须放在最前面
SUNDAY(7),MONDAY(1),TUESDAY(2),WEDNESDAY(3),THURSDAY(4),FRIDAY(5),SATURDAY(6);
private int day;
//枚举的构造方法必须是私有的
private WeekDay(){}
private WeekDay(int day)
{
this.day = day;
}
}
//带抽象方法的枚举
public enum TrafficLamp
{
RED(30){
public TrafficLamp nextLamp()
{
return GREEN;
}
},
GREEN(25){
public TrafficLamp nextLamp()
{
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp()
{
return RED;
}
};
private int time;
private TrafficLamp(int time)
{
this.time = time;
}
public abstract TrafficLamp nextLamp();
}
}
Enum
最新推荐文章于 2019-07-30 11:29:50 发布