java枚举类型-学习初

阅读更多
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:
 public enum Color{
    RED,BLUE,BLACK,YELLOW,GREEN
 }

显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类,而且是类库中Enum类的子类(java.lang.Enum)。
1、Color枚举类是特殊的class,其枚举值(RED,BLUE...)是Color的类对象(类实例):Color c=Color.RED;而且这些枚举值都是public static final的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。
2、即然枚举类是class,当然在枚举类型中有构造器,方法和数据域。但是,枚举类的构造器有很大的不同:
(1) 构造器只是在构造枚举值的时候被调用。
(2) 构造器只能私有private,绝对不允许有public构造器。这样可以保证外部代码无法新构造枚举类的实例。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 但枚举类的方法和数据域可以允许外部访问。

下面是我自己写的例子:
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);
	}
}

你可能感兴趣的:(java)