作用:让数据更简洁,更易读,增加代码可读性。
为了用1,2,3,4,5分别表示老师,学生,小组,班主任,后勤,可以直接设置一个变量,让roleType = 1,但这样写代码可读性差。
也可以定义一个成员类,分别给不同的静态成员赋1,2,3,4,5,在需要调用的地方,直接通过RoleType.xxx去进行变量的赋值,如下:
package com.Gary2; public class CustomEnum { public static void main(String[] args) { //1老师 2学生 3小组 4班主任 5后勤 //可读性差 // int roleType = 2; // int roleType2 = 5; //学生 int roleType = RoleType.STUDENT; //后勤 int roleType2 = RoleType.LOGISTICS; } }
package com.Gary2; public class CustomEnum { public static void main(String[] args) { //1老师 2学生 3小组 4班主任 5后勤 //可读性差 // int roleType = 2; // int roleType2 = 5; //学生 int roleType = RoleType.STUDENT; //后勤 int roleType2 = RoleType.LOGISTICS; } }
枚举类型就是对RoleType.class进行简化
package com.Gary2; //枚举 public enum RoleTypeEnum { //不需要直接赋值,默认从0开始依此增加,实际上是int类型 TEACHER, STUDENT, PRINCIPAL, HEADTEACHER, LOGISTICS }
package com.Gary2; public class CustomEnum { public static void main(String[] args) { //1老师 2学生 3小组 4班主任 5后勤 //可读性差 // int roleType = 2; // int roleType2 = 5; //学生 //int roleType = RoleType.STUDENT; //后勤 //int roleType2 = RoleType.LOGISTICS; //使用枚举类型 RoleTypeEnum rt1 = RoleTypeEnum.TEACHER; RoleTypeEnum rt2 = RoleTypeEnum.STUDENT; System.out.println(rt1); System.out.println("取得所代表int类型"+rt1.ordinal()); } }
使用增强for循环遍历枚举类型中的值
for(RoleTypeEnum rt :RoleTypeEnum.values()) { System.out.println(rt); }
package com.Gary2; public class CustomEnum { public static void main(String[] args) { //1老师 2学生 3小组 4班主任 5后勤 //可读性差 // int roleType = 2; // int roleType2 = 5; //学生 //int roleType = RoleType.STUDENT; //后勤 //int roleType2 = RoleType.LOGISTICS; //使用枚举类型 RoleTypeEnum rt1 = RoleTypeEnum.TEACHER; RoleTypeEnum rt2 = RoleTypeEnum.STUDENT; for(RoleTypeEnum rt :RoleTypeEnum.values()) { System.out.println(rt); } } }