`

枚举的学习

阅读更多

 

枚举

1)、用普通类模拟枚举功能。用weekDay的类来模拟

私有的构造方法

每个元素分别用一个公有的静态成员变量表示

可以有若干公胡方法或抽象方法,例如,要提供nextDay()方法必须是抽象的。采用抽象方法定义nextDay()就将大量的if else语句转移成了一个个独立的类

代码例子:

 

下面,通过枚举类,实现相同的功能

a、什么是枚举,枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错,枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量在开发阶段无法实现这一目标。

b、可以将枚举类型看作一个类,它继承于java.lang.Enum,当定义一个枚举类型时,每一个枚举类型成员都可以看作是枚举类型的一个实例。这些枚举成员都默认被final, public, static所修饰,所以可以直接用枚举类型名直接调用枚举类型成员。

c、枚举类型中可以定义构造方法,成员变量,变通方法和抽象方法,枚举元素必须位于枚举体中的最开始的部分,枚举元素列表要有分号与其他成员分隔。把枚举中的成员方法或变量等放在枚举元素的前面,编译器会报错。

常用的方法:

values():以数组的形式返回枚举类型成员

valueOf():将普通字符串转换为枚举类型实例

compareTo():比较两个枚举对象在定义时的顺序

ordinal():获得枚举成员的位置索引

d、枚举类型的构造方法:

枚举类型的构造方法必须为private修饰,

多个构造方法,怎么选择调用哪个构造方法的?若要调用构造方法,可以在定义枚举成员变量时,指定其构造方法的参数,系统会根据参数类型自动去调用相应的构造方法。

枚举元素MONMON()的效果一样,都是调用默认的构造方法。

e、普通方法

可以通过枚举成员调用。和普通类调用形式一样

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics