黑马程序员_java中的枚举
2014-07-13 18:40
218 查看
------- android培训、java培训、期待与您交流!
----------
一、enum枚举:它是Type 是 Java 编程语言中所有类型的一种,他的实例对象表示的是一些具有一定取值范围的一类数据,通过枚举的实现,在编译时期杜绝那些在范围外的数据的输入,提高代码的安全性。例如:表示时间的年、月、日、星期等。下面通过定义一个WeekDay星期类,来说明枚举的一些相关的知识:1)枚举列表中的成员都是常量值,用大写表示。
1) 枚举当中参数列表是枚举类中的实例对象,如果枚举类中只有参数列表时,最后的双引号可以省略;而如果,枚举类中除了参数列表外,还有其他成员,则其后的双引号必须写上,且,其它成员必须位于此参数列表之后。
2) 枚举列表中的成员都是有序性的,它的成员方法int ordinal()方法返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
3) 枚举中的构造函数必须是私有的。
二、带有多个构造的枚举:构造函数是用来实例化对象的,带有多个构造函数的枚举怎么实现其构造函数的调用呢?
public
enumWeekDayTest {
MON(0),TUE(1),WEN,THR,FRI,SAU,SUN;
private WeekDayTest() {
System.out.println("无参构造方法");
}
private WeekDayTest(int day) {
// TODO自动生成的方法存根
System.out.println("有参构造方法");
输出结果:
有参构造方法
有参构造方法
无参构造方法
无参构造方法
无参构造方法
结果分析:由于类加载时会加载类的静态属性值(MON(0),TUE(1),WEN,THR,FRI,SAU,SUN),默认情况下(即静态值后面的小括号中没有参数),会调用无参构造方法,若静态值后面的小括号中有参数,如上面代码中的MON(0),TUE(1),会调用有参构造方法。
三、带有抽象方法 的枚举:public
enum TrafficLamp {
RED(30){
public TrafficLamp nextLamp()
{
return
GREEN;
}
},
GREEN(20){
public TrafficLamp nextLamp()
{
return
YELLOW;
}
},
YELLOW(40){
public TrafficLamp nextLamp()
{
return
RED;
}
};
public
abstract TrafficLampnextLamp();
private
int time;
private TrafficLamp (int time)
{
this.time=time;
}
}
注意:此枚举类中虽有抽象方法,但是不可以将enum用abstract修饰,这是与其他类不同的地方,其抽象方法实现方式与普通类一样的,不能用new的方式直接创建对象,但可以用花括号 的方式完成对父类的实现。
------- android培训、java培训、期待与您交流!
----------
相关文章推荐
- 黑马程序员_Java高新技术一_增强FOR、枚举
- 黑马程序员__java_枚举
- 黑马程序员_java基础加强-枚举和反射
- 黑马程序员_java jdk5.0新特性和枚举的学习笔记
- java高新技术_枚举反射内省(黑马程序员)
- 黑马程序员--java的Enum枚举
- 黑马程序员_ Java高新技术——深入Java枚举机制
- 黑马程序员_java高新技术 枚举
- 黑马程序员-java中的枚举
- 黑马程序员_java之枚举和反射机制
- 黑马程序员———Java1.5 新特性之枚举
- 黑马程序员——Java1.5新技术之枚举
- 黑马程序员_王康 java反射,枚举,注解
- 黑马程序员——JAVA(枚举)
- 黑马程序员--java高新技术--java5的枚举
- 【黑马程序员】张孝祥Java高新技术_装箱拆箱、枚举、反射
- 黑马程序员_java学习日记_Java高新技术_枚举
- 黑马程序员_java枚举的学习心得
- 黑马程序员_java高新技术(1)枚举、反射、内省
- 黑马程序员__JAVA高新技术--枚举及内省JavaBean、可变参数等知识点总结