一。枚举类是一种特殊的类,使用enum关键字定义。可以有自己的方法和属性,也可以有自己的构造器,实现一个和 多个接口。
1.使用枚举类默认继承了java.lang.Enum类,而不是object类,其中java.lang.Enum默认实现了java.lang.Serializable 和java.lang.Comparable接口。
2.枚举类的构造方法只能私有。枚举类的实例只能在枚举类中显式列出。
例如:
public enum Color{
RED,BLUE,BLACK,YELLOW,GREEN
}
enum Color{
RED(255,0,0),BLUE(0,0,255),BLACK(0,0,0),YELLOW(255,255,0),GREEN(0,255,0);
private Color(int redValue,int greenValue,int blueValue){
this.redValue=redValue;
this.greenValue=greenValue;
this.blueValue=blueValue;
}
private int redValue; //自定义数据域,private为了封装。
private int greenValue;
private int blueValue;
}
public static void main(String args[]){
Color colors=new Color(100,200,300); //错误,构造器为私有,无法创建新的实例
Color color=Color.RED;
System.out.println(color); // 调用了toString()方法
}
下面列出枚举类常用多的方法;
1.ordinal();返回枚举中的顺序,Color. RED.ordinal()//返回0
2.compareTo() ;实际上比较两个对象的顺序。 Color.RED.compareTo(Color.BLUE); //返回结果 -1
3.values()方法: 静态方法,返回一个包含全部枚举值的数组。
Color[] colors=Color.values();
for(Color c:colors){
System.out.print(c+",");
} //返回结果:RED,BLUE,BLACK YELLOW,GREEN,