所谓枚举就是实现考虑到某一变量可取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。
首先我们先举一个简单的实例说明:
public class Student {
private String name; //名称
private String grade;//A优,B良,C中,D差
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("[ABCD]")){
System.out.println("---------");
this.grade = grade;
}else{
throw new IllegalArgumentException("你传递的参数不合法...");
}
}
}
- 接下来我我们进行测试
import org.junit.Test;
public class StudentTest {
@Test
public void test(){
Student st = new Student();
st.setGrade("AB");
}
}
- 我们可以看到赋值为"AB"
- 那么他就会抛出你传递的参数不合法,因为他的参数为ABCD其中的任何一个,我们是和枚举中的定义的每一个值去进行比较
- 其实enum中定义的值就相当于jdk1.4中定义的对象,其实他们就是对象:如图
class Grade{
private Grade(){
}
public static Grade A = new Grade();
public static Grade B = new Grade();
public static Grade C = new Grade();
public static Grade D = new Grade();
}