---------------------- android培训、java培训、期待与您交流! ----------------------
一、 枚举的作用
枚举是JDK1.5增加的新特性。它是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错,枚举可以让编译器在编译时就可以控制源程序中填写的非法值。所有的枚举类型都继承自java.lang.Enum。
二、 用抽象类实现枚举操作
public abstract class Color {
private Color(){}
public static Color RED=new Color(){
public Color nextColor(){
return GREEN;
}
};
public static Color GREEN=new Color(){
@Override
public Color nextColor() {
// TODO Auto-generated method stub
return YELLOW;
}
};
public static Color YELLOW=new Color(){
@Override
public Color nextColor() {
// TODO Auto-generated method stub
return RED;
}
};
public abstract Color nextColor();
public String toString()
{
return this==RED?"RED":(this==GREEN?"GREEN":"YELLOW");
}
}
三、 基本枚举类
public class EnumColor {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Color color2=Color.RED;
System.out.println(color2);
}
public enum Color
{
RED,GREEN,YELLOW;
}
}
四、 带有构造方法的枚举类
public class EnumColor {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Color color2=Color.RED;
System.out.println(color2);
}
public enum Color
{
RED(1),GREEN(),YELLOW;
private Color(){}
private Color(int color){System.out.println("second");}
}
}
注意:
(1) 枚举元素必须位于枚举体中的最开始部分,枚举元素列表后面无需加分号,但是枚举元素列表的后面有其他成员,需要用分号隔开。
(2) 构造方法必须定义成私有的
(3) 如果有多个构造方法,该如何选择用哪个构造方法
(4) 枚举元素MON和MON( )的效果一样,都是调用默认的构造方法
---------------------- android培训、java培训、期待与您交流! ----------------------