您的位置:首页 > 编程语言 > Java开发

java枚举类型-学习初

2013-05-27 14:48 302 查看
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:

Java代码

public enum Color{

RED,BLUE,BLACK,YELLOW,GREEN

}

显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类,而且是类库中Enum类的子类(java.lang.Enum<E>)。

Java代码

1、Color枚举类是特殊的class,其枚举值(RED,BLUE...)是Color的类对象(类实例):Color c=Color.RED;而且这些枚举值都是public static final的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。

2、即然枚举类是class,当然在枚举类型中有构造器,方法和数据域。但是,枚举类的构造器有很大的不同:

(1) 构造器只是在构造枚举值的时候被调用。

(2) 构造器只能私有private,绝对不允许有public构造器。这样可以保证外部代码无法新构造枚举类的实例。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 但枚举类的方法和数据域可以允许外部访问。

下面是我自己写的例子:

Java代码

public class Test{

public static void main(String[] args) throws Exception

{

Test.outputWeekDay(WeekDay.Monday);

}

public static void outputWeekDay(WeekDay w)

{

System.out.println(w);

}

}

enum WeekDay

{

Monday(1),Tuesday(2),Wednesday(3);

private int weekValue;

private WeekDay(int weekValue)

{

this.weekValue = weekValue;

}

@Override

public String toString()

{

// TODO Auto-generated method stub

return String.valueOf(this.weekValue);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: