枚举总结一。枚举的作用介绍枚举,可以对只有几种取值可能的东西,进行限定,加入你取值不是限定中的其中之一,那么编译器就会报错,这样大大提高了程序的安全性,健壮性!二。枚举的实现原理枚举的原理,就好像是单例模式,把构造方法私有化,不要让别人创建对象,而由自己对外提供几个自己这个类的静态常量对象,这样,在赋值的时候,只能选我提供的这几个静态常量对象,而不能自己new对象!所以每个枚举元素都是一个对象!
2.自定义的枚举可以有抽象方法,该抽象方法必须由枚举的元素对象去实现,只要在枚举元素后面加个括号,括号后面在加个大括号,里面写个抽象方法的实现,就代表该元素对象是枚举类的子类!!
3.定义枚举用enum关键字,类似class关键字,枚举是一个特殊的类,枚举的取值范围,元素列表,必须定义在第一行,最前面,多个元素用逗号分隔,最后个元素用分号结束!!枚举的构造方法必须私有化!枚举可以有带参数的构造方法,调用该构造方法,只要在元素后面加个()括号传个相应的参数就可!
4.new Data(30){}。代表创建一个Data的子类,并调用父类有参数的构造方法!枚举当之有一个元素成员时,那就是一个单例! package cn.itcast.day1;
public abstract class WeekDay1 { private WeekDay1(){} public final static WeekDay1 SUN = new WeekDay1(){
@Override public WeekDay1 nextDay() { // TODO Auto-generated method stub return MON; } }; public final static WeekDay1 MON = new WeekDay1(){
@Override public WeekDay1 nextDay() { // TODO Auto-generated method stub return SUN; } }; public abstract WeekDay1 nextDay(); /* public WeekDay nextDay(){ if(this == SUN){ return MON; }else{ return SUN; } }*/ public String toString(){ return this==SUN?"SUN":"MON"; }}5.枚举不能被继承,但是可以有子类!
|