<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]><![endif]-->
枚举
枚举就是要把某一类型的变量只能为某些特定的值中的一个,这样可以把错误在编译阶段就显现出来,这是比普通变量优越的地方.
用普通类模拟枚举类
class WeekDay(){
private WeekDay(){}//构造方法为私有,这样就不能在外部创建实例对象
public static WeekDay SUN = new WeekDay();
public static WeekDay MON = newWeekDay();//创建公有的静态的本身类型的变量,即自身的实例对象
public String toString(){}//覆盖toString方法
}
new xxx(){},若xxx为一个普通类,则表示xxx的子类,若xxx是抽象类,{}内写这个子类的实现的抽象方法;若xxx为一个接口类,则表示xxx的实现类,{}内为接口方法的实现代码
枚举类以关键字enum来定义,.在定义时指定元素列表,枚举类的实例对象只能是列表中的一个元素.若枚举类内只有元素列表时,则可以不以;结尾.
若枚举类有构造方法时,构造方法只能是私有的且位于元素列表之后.若有多个构造方法时,元素可以指定参数列表以表明使用哪个构造方法.
enum sexy{
FAMALE(12),MALE(21);//使用有参的构造方法
Private sexy(){}
Private sexy(int age){}
}
若枚举类有抽象方法,则可以通过在元素列表中加入抽象方法的实现代码的方式,将每个元素都当作这个枚举类的子类创建的对象.
enum person{
FAMALE{
Public void getMarried(){System.out.println(“getMarriedwith male”);}
},
MALE{
Public void getMarried(){System.out.println(“getMarriedwith famale”);}
};//元素由person类的子类创建,并实现了getMarried方法
Public abstract getMarried();
}