有些自己的注释,可能有些地方说的不对,
请指导!!!
枚举
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错
,枚举可以让编译器在编译时就可以控制程序中填写的非法值,普通变量的方式在开发阶段
无法实现这一目标。
enum类
基本方法
int ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
String toString()
返回枚举常量的名称,它包含在声明中。
static <T extends Enum<T>>
T
valueOf(Class<T> enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。
String name()
返回此枚举常量的名称,在其枚举声明中对其进行声明。
枚举相当于一个类,其中也可以定义构造方法,成员变量,普通方法和抽象方法
枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后面要有分号与其他成员分割。
把枚举中的成员方法或变量等放在元素的前面,编译器会报错
枚举只有一个成员时,就可以作为单例的实现方式
public class enumTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Weekday d1 = Weekday.FRI;
System.out.println(d1);
System.out.println(d1.name());//FRI 返回此枚举常量的名称,在其枚举声明中对其进行声明
System.out.println(d1.ordinal());//5 返回枚举常量的序数
System.out.println(Weekday.valueOf("SUN"));//返回带指定名称的指定枚举类型的枚举常量。
System.out.println(Weekday.values().length);//7 values返回一个Weekday的集合,length得出长度
}
public enum Weekday{ //这是内部类
SUN,MAN,TUE,WED,THI,FRI,STA; 每一个数据都是Weekday中的实例对象(子类)
}
public enum TraffcLamp{
RED(30){ //通过子类RED去调用父类TraffcLamp中的构成方法,放入参数
public TraffcLamp nextLamp(){ //实现父类TraffcLamp中的抽象方法
return null;
}
},GREEN(45){
public TraffcLamp nextLamp(){
return null;
}
},YELLOW(5){
public TraffcLamp nextLamp(){
return null;
}
};
//因为RED,GREEN,YELLOW都是TraffcLamp的子类,
//而父类TraffcLamp中有抽象方法nextLamp,所以子类需要去实现父类的抽象方法
//子类中再加{},表示子类中匿名内部类。
public abstract TraffcLamp nextLamp();
private int time;
private TraffcLamp(int time){ //定义构造函数
this.time=time;
}
}
}
|
|