------- android培训、java培训、期待与您交流! ----------
枚举
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个枚举的实例
2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修
饰符
3.枚举默认实现了java.lang.Comparable接口。
4.枚举覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.
5.枚举提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说
应该相对应地重写valueOf方法
6.枚举还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。
7.枚举还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0
例子:
public enum Color {
Red,
Green,
Blue;
/*
*定义一个变量表示枚举值的数目
*/
private static int number = Color.values().length ;
/**
* 随机返回一个枚举值
@return a random enum value.
*/
public static Color getRandomColor(){
long random = System.currentTimeMillis() % number;
switch ((int) random){
case 0:
return Color.Red;
case 1:
return Color.Green;
case 2:
return Color.Blue;
default : return Color.Red;
}
}
}
public enum Color {
Red {
public String toString(){
return "Color.Red";
}
},
Green {
public String toString(){
return "Color.Green";
}
},
Blue{
public String toString(){
return "Color.Blue";
}
};
}