Enum分析
枚举的引入和和模拟
需求:定义一个Employee(员工),使用一个变量restday来表示他哪一天休息(一周的哪一天)
感觉没问题,但是经不起推敲:
使用int类型表示星期几存在的问题
1.类型不安全,完全可以设置非(1,7)之间的数
2.业务含义不够明确,设置1表示周几?周日/周一?
-----------------------------------------------------
解决方案
专门使用一个Weekday来表示周一到周日,使用7个常量来表示.
此时,业务是非常明确了,因为Weekday.WEDNESDAY就是代表周三的意思,但是,因为在Weekday中的restday类型还是int类型,
我们依然可以设置随意的值,e.setRestDay(13);所以我们的数据类型安全问题还是没有解决
解决办法:因为int类型不安全,我们把休息日使用一个对象类型来表示,并固定该休息日的值只能是周一到周日
这个就是枚举引入的过程,
简单的写法是