您的位置:首页 > 职场人生

黑马程序员——java高新技术:枚举

2014-09-21 17:20 197 查看
------- android培训java培训、期待与您交流! ----------
枚举是java1.5版本的新特性。

1,枚举是什么?

就是让某个类型的变量的取值只能为若干个固定值中的一个。可以让编译器在编译时就可控制,避免出错。

2.枚举的应用

(1)定义枚举使用
的关键字是enum,定义一个最简单的枚举。

public class EnumText {

public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDay weekDay1 = WeekDay.MON;
}

public enum WeekDay{
SUN,MON,WED,THT,FRI,SAT;

}
}
这就是一个最简单的枚举。
(2)我们在看一个枚举

public enum TraffictLamp{
RED(30) {
@Override
public TraffictLamp nextLamp() {
// TODO Auto-generated method stub
return GREEN;
}
},
GREEN(35) {
@Override
public TraffictLamp nextLamp() {
// TODO Auto-generated method stub
return YELLOW;
}
},
YELLOW(5) {
@Override
public TraffictLamp nextLamp() {
// TODO Auto-generated method stub
return RED;
}
};
public abstract TraffictLamp  nextLamp();
private int time;
private TraffictLamp(int time){this.time = time;}
}
枚举的几个特性:

1、构造方法必须是private访问权限。

2、每一个元素(RED、YELLOW、BLACK)就是枚举类TraffictLamp的一个实例元素

3、枚举中可以有抽象方法,但是和定义普通类中抽象方法时,普通类必须是抽象类,而枚举不用,但是因为枚举类中有实例元素且有抽象方法,实例元素在定义时必须实现抽象方法。并且元素要看构造方法来具体定义。本例中定义了一个有参数的构造方法。

4,枚举是一种特殊的类,其中的每一个元素都是该类的一个实例对象,如果枚举只有一个成员时(也可以说是元素),就可以作为一种单例的实现方式。单例可以看做是一种枚举。

枚举的基本应用:常有方法有values()、valueOf()、name()、toString()、ordinal()等

values():获取的是该枚举类数组,为无参方法。

valueOf(String
name):获得传入的字符串对应的枚举类型元素。注意传入的字符串要和枚举元素大小写一模一样。

name():获得当前枚举类型元素的名字。

toString():同name()方法一样,获得当前枚举类型元素的名字

ordinal():获得当前枚举元素的在枚举中序号。

枚举总结:

1、枚举就相当于一个类,其中可以定义构造方法(必须私有),成员变量,普通方法和抽象方法。

2、枚举元素必须位于枚举体中最开始部分,枚举元素列表的后面没有其他成员时可以省略分号,若有其他成员则要用分号进行分割。

3、枚举只有一个成员时,可以作为一种单例的实现方法。

带有构造方法的枚举:

1、构造方法必须定义为私有。

2、如果有多个构造方法,枚举元素可以根据需要,调用相应的构造方法。

带有方法的枚举:

定义枚举,有抽象方法时,每个元素都是该枚举的一个实例对象,所以每个元素都必须实现抽象方法,采用类似匿名类的方式进行实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: