关于java枚举

    技术2024-08-17  65

      java语言中,用关键字enum来定义一个枚举类。枚举可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final,可以通过枚举类型名直接使用它们。

      这些类都继承了类库中的Enum类,可以调用自带的很多方法。我们可以向enum中添加方法,甚至是main()方法。

     

    public enum EnumState {     A, B, C

    }

    public class TestDemo {   public static void main(String args[]){        TestDemo test=new TestDemo();         test.doAction(EnumState.A);         test.doAction(EnumState.B);         test.doAction(EnumState.C);     } //执行的动作 public void doAction(EnumState action) {

        switch (action) {             case A:                 System.out.println("第一步");                 break;             case B:                 System.out.println("第二步");                 break;             case C:                 System.out.println("第三步");                 break;             default:                 System.out.println("默认操作!");

                    break;         }     } }

     

    所有枚举类都继承了Enum的方法:

    (1)  ordinal()方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而定。                 Color.A.ordinal();  //返回结果:0                 Color.B.ordinal();  //返回结果:1(2)  compareTo()方法: Enum实现了java.lang.Comparable接口,因此可以比较象与指定对象的顺序。Enum中的compareTo返回的是两个枚举值的顺序之差。当然,前提是两个枚举值必须属于同一个枚举类,否则会抛出ClassCastException()异常。                 Color.A.compareTo(Color.B);  //返回结果 -1(3)  values()方法: 静态方法,返回一个包含全部枚举值的数组。                 EnumState[] states=EnumState.values();                 for(EnumState s:states){                        System.out.print(s+",");                  }//返回结果:A,B,C

    (4)  toString()方法: 返回枚举常量的名称。                 EnumState s=EnumState.A;                 System.out.println(s);//返回结果: A

    (5)  valueOf()方法: 这个方法和toString方法是相对应的,返回带指定名称的指定枚举类型的枚举常量。                 EnumState.valueOf("B");   //返回结果: Color.B

    (6)  equals()方法: 比较两个枚举类对象的引用。

     

    最新回复(0)