黑马程序员——Java1.5新技术之枚举

来源:互联网 发布:亚马逊数据分析师 编辑:程序博客网 时间:2024/06/08 03:08

---------------------- android培训、java培训、期待与您交流! ----------------------

枚举类型是Java1.5引进新特性,Sun引入了全新的关键字enum来定义枚举类型,允许用常量来表示特定的数据。enum是一个很特殊的类,它的定义方法和普通的class一样,在编译时期编译器会将enum类型单独译成一个字节码文件,下面是一个普通的枚举类型定义:

public enum Color{RED,GREEN,YELLOW };

这里定义的color类,是一个不可以被继承的final类,其中定义的枚举数据都是color类型的静态常量,定义对象时 Color cl=Color.RED,这是一种常用方式。下面是枚举常用的一些方法:

String name();返回此枚举常量的名称,在其枚举声明中对其进行声明。

int ordinal();返回此枚举常量的序数,也就是在枚举声明中的位置,第一个序数为零。

String toString();返回枚举常量的名称,它包含在声明中。

static <T extends Enum<T>> valueOf(class<T> enumType,String name)返回带指定名称的指定枚举类型的枚举常量,调用valueOf("RED")返回Color.RED。

values()遍历所有的枚举值;

以color为例,遍历其所有的枚举值,使用增强的for循环

for(Color c:Color.values()){

System.out.println(c);}

为枚举类定义构造方法,但是它的构造方法不可以被public修饰,只能使用private来修饰。

public enum Color{

RED,GREEN,YELLOW ;

private Color(){System.out.println("1");}

private Color(int x){System.out.println("2");}

};有特定参数的构造方法,可以在枚举常量之后加上(),其中填上相对应的数据类型的参数即可。

为枚举类定义抽象方法,每个枚举对象就必须重写父类Color的抽象方法,同时使用构造函数时也是直接()传递参数即可。

public enum Color{

RED(30){

public Color nextColor()

{return GREEN;}

},

GREEN(40){

public Color nextColor()

{return YELLOW;}

},

YELLOW (5){

public Color nextColor()

{return RED;}

};

public abstract Color nextColor();

private Color(int time){this.time=time;}

};



---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
原创粉丝点击