跟王老師學枚舉(一)爲何須要枚舉

跟王老師學枚舉(一):爲何須要枚舉

主講教師:王少華   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);
     }
}





相關文章
相關標籤/搜索