枚举

实例有限而固定的类成为枚举类,例如:季节类,它只有四个对象;行星类,它只有九个对象。

枚举类与普通类的区别:

1、使用enum定义的枚举类默认继承了java.lang.Enum类,而不是Object类。其中java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口。

2、枚举类的构造器只能用private修饰,如果省略则系统默认使用private。

3、枚举类的所有实例必须在枚举类中显式列出,而且系统会自动添加public static final修饰。

4、所有枚举类都提供了一个values方法。该方法可以很方便地遍历所有枚举值。

public class Season {

   public void judge(SeasonEnum s){
   switch (s) {
   case SPRING:
    System.out.println("春天");
      break;
   case SUMMER:
    System.out.println("夏天");
      break;
   case FALL:
    System.out.println("秋天");
      break;
   case WINTER:
    System.out.println("冬天");
      break;
   default:
      break;
   }
}
 
 public static void main(String[] args) {
  // 所有枚举类都有一个values()方法,返回该枚举类的所有实例
  for (SeasonEnum s : SeasonEnum.values()) {
     System.out.println(s);
    }
//平常使用枚举类时,通过EnumClass.variable形式类访问
  new Season().judge(SeasonEnum.SPRING);
   }
 }
enum SeasonEnum{
   SPRING,SUMMER,FALL,WINTER;
}

枚举类可以直接使用java.lang.Enum类中所包含的方法:

1、int comparaTo(E o):用于与指定的枚举对象比较顺序,同一个枚举实例只能与相同类型的枚举类实例进行比较,如果该枚举对象位于指定对象之后则返回正整数,否则返回负整数。

2、string name():返回此枚举实例的名称

3、int ordinal():返回枚举值在枚举类中的索引值,跟数组的下标同一概念。

4、string toString():返回枚举常量的名称,大致上与name方法相似,但toString()更常用。

5、public static<T extends Enum<T>> T valueOf(Class<T>enumType,String name):这是一个静态方法,用于返回指定枚举类中指定名称的枚举值。

posted @ 2012-01-25 17:51  广东仔-学习ing  阅读(253)  评论(0编辑  收藏  举报