只要是实例个数固定 就可以定义成枚举,比如说方向(东南西北),比如性别(男女),国籍()等,可以防止用户使用任意输入的值或者创建任意对象
因为枚举其实是一个构造函数私有,实例个数固定的一个类,所以外部无法自己创建实例,只能通过类名.实例名的方法使用枚举类中预先定义好的实例变量
首先给你一个自己写的枚举类- public abstract class Day {
-
- private Day() {
- }
- /**
- * 采用抽象类将大量的ifelse转换成一个个的独立的类
- */
- public static final Day monday = new Day(){
- @Override
- public Day nextDay() {
- return thusday;
- }
- };
- public static final Day thusday = new Day(){
- @Override
- public Day nextDay() {
- return null;
- }
- }
- public Day getDay()
- {
- if(this == monday)
- {
- return monday;
- }else
- {
- return thusday;
- }
- }
- public String toString()
- {
- return null;
- }
- public abstract Day nextDay();
- }
复制代码 这个是关于天数的枚举- public enum WeekDay1 {
- SUN,MON,TUS,WED,THIR,FRI,SAT;
- private WeekDay1()
- {
- System.out.println("first");
- }
- private WeekDay1(int a)
- {
- System.out.println(a);
- }
- }
复制代码 这个是枚举,从这我们可以看出枚举简化了我们创建类的步骤并减少了代码 |