java的枚举

来源:互联网 发布:log4j2配置不打印sql 编辑:程序博客网 时间:2024/06/16 12:24

 

枚举类型enum是一种新的类型,在JDK5.0加入,允许用常量来表示特定的数据片断,

这些数据是分配时预先定义的值的集合,而且全部都以类型安全的形式来表示。 

在枚举类型没有加入到Java 前,我们要想表达常量的集合,通常采用如下的方式: 

public class Test { 

    public static final int A = 1; 

    public static final int B = 2; 

    public static final int C = 3; 

    public static final int D = 4; 

    public static final int E = 5; 

 

 

把上面的例子改成用枚举的方式: 

public class Test { 

  public enum StudentGrade{ 

   A,B,C,D,E,F 

  }; 

 

一 

遍历枚举类型                                                       

示例如下: 

public class Test { 

  public enum StudentGrade{ 

   A,B,C,D,E,F 

  };  

  public static void main(String[] args) { 

   for(StudentGrade score : StudentGrade.values()){ 

      System.out.println("学生成绩取值可以为=="+score); 

    } 

  } 

运行结果: 

学生成绩取值可以为==A 

学生成绩取值可以为==B 

学生成绩取值可以为==C 

学生成绩取值可以为==D 

学生成绩取值可以为==E 

学生成绩取值可以为==F 

 

values() 方法返回了一个由独立的  StudentGrade实例构成的数组。 

 

还有一个常用的方法:valueOf(String) :功能是以字符串的形式返回某一个具体枚举元

素的值,示例如下: 

public class Test { 

  public enum StudentGrade{ 

   A,B,C,D,E,F 

  };  

  public static void main(String[] args) { 

    Test t = new Test(); 

    StudentGrade score = StudentGrade.valueOf("A"); 

    System.out.println("你的成绩是:"+score);    

  } 

运行结果:你的成绩是:A 

 

 

 

在 switch中使用枚举类型                                                                 

示例如下: 

public class Test { 

  public enum StudentGrade{ 

   A,B,C,D,E,F 

  };  

  public static void main(String[] args) { 

    Test t = new Test(); 

    StudentGrade score = StudentGrade.C; 

   switch(score){ 

     case A: 

        System.out.println("你的成绩是优秀"); 

       break; 

     case B: 

        System.out.println("你的成绩是好"); 

       break;  

     case C: 

        System.out.println("你的成绩是良"); 

       break;  

     case D: 

        System.out.println("你的成绩是及格"); 

       break;  

     default: 

        System.out.println("你的成绩是不及格"); 

       break; 

    } 

  } 

运行结果:你的成绩是良 

 

 

原创粉丝点击