跟王老师学枚举(一)为何须要枚举

跟王老师学枚举(一):为何须要枚举

主讲教师:王少华   QQ群号:483773664

1、需求

一些方法在运行时,它须要的数据不能任意的,而必须是必定范围内的值。好比,有如下需求:学生的考试成绩只能分为A B C D E五个等级,不能是其余的等级java

2、实现
app

(一)第一种方式:字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Student {
     private String name;    //姓名
     private String grade;   //成绩:A B C D E
     public String getName() {
         return name;
     }
     public void setName(String name) {
         this .name = name;
     }
     public String getGrade() {
         return grade;
     }
     public void setGrade(String grade) {
         //若是赋值不在这些等级内,则抛出异常
         if (!grade.matches( "[ABCDE]" )){
             throw new RuntimeException( "不支持此参数!" );
         }
         this .grade = grade;
     }
}

1
2
3
4
5
6
public class StudentTest {
     public static void main(String[] args) {
         Student student = new Student();
         student.setGrade( "X" );
     }
}

(二)第二种方式:常量

把这个类的全部可能实例都使用 public static final 修饰ide

须要private 将构造器隐藏起来this

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Grade {
     public static final  Grade A= new Grade( "A" );
     public static final  Grade B= new Grade( "B" );
     public static final  Grade C= new Grade( "C" );
     public static final  Grade D= new Grade( "D" );
     public static final  Grade E= new Grade( "E" );
     private String value;
     private Grade(String value){
         this .value = value;
     }
     public String getValue() {
         return value;
     }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Student {
     private String name;    //姓名
     private Grade grade;    //成绩:A B C D E
     public String getName() {
         return name;
     }
     public void setName(String name) {
         this .name = name;
     }
     public Grade getGrade() {
         return grade;
     }
     public void setGrade(Grade grade) {
         this .grade = grade;
     }
}

1
2
3
4
5
6
public class StudentTest {
     public static void main(String[] args) {
         Student student = new Student();
         student.setGrade(Grade.A);
     }
}





相关文章
相关标签/搜索