在开始介绍之前我们先来理解一下枚举的概念
为了防止用户乱输入创建对象,我们通常将格式形成统一的,例如下列的性别:
public final class SexUtil {
private SexUtil() {}
public static final char MALE = '男';
public static final char FEMALE = '女';
}
但是由于无法限定对象的数据类型所以这里引入了数组。
- jdk1.5+
- 使用它来汇总一系列表示同类含义的常量。
- 枚举是引用的数据类型,枚举类型的属性,赋值只能是枚举中声明过的常量。
两个方法:
name() 用来返回此枚举的常量名称,和在枚举中声明的完全相同
ordinal() 返回次枚举常熟的次序
使用的方式:
- 在枚举中声明多个常量,用逗号分隔,枚举作为引用数据类型,只能使用声明过的常量作为数据的值
public enum LoginResult {
SUCCESS,
NOT_EXIST,
USERNAME_OR_PASSWORD_ERROR;
}
枚举作为引用数据类型
public class Teacher {
private String name;
private int age;
//枚举作为引用数据类型
private SexEnum sex;
public Teacher() {
super();
}
public Teacher(String name, int age, SexEnum sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
/...省去getter和setter.../
}
- 在枚举中可以声明私有的属性、私有的构造方法、getter和setter方法、构造方法是私有的,只能在枚举的内部使用(定义常量值的时候使用),可以将多个表示相同含义属性的不同表现形式 集合到一起
public enum LoginResultEnum {
SUCCESS("登陆成功,欢迎进入青山管理系统。"),
USERNAME_IS_NOT_EXIST("用户名不存在"),
USERNAME_OR_PASSWORD_ERROR("用户名或密码错误");
private String content;
private LoginResultEnum(String content) {
this.content = content;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
//我们可以理解为
@Test
public void test4() {
System.out.println(LoginResultEnum.SUCCESS.getContent());
}