Enum分析

                                   枚举的引入和和模拟

需求:定义一个Employee(员工),使用一个变量restday来表示他哪一天休息(一周的哪一天)

感觉没问题,但是经不起推敲:

     使用int类型表示星期几存在的问题

      1.类型不安全,完全可以设置非(1,7)之间的数

      2.业务含义不够明确,设置1表示周几?周日/周一?

-----------------------------------------------------

      解决方案

               专门使用一个Weekday来表示周一到周日,使用7个常量来表示. 

此时,业务是非常明确了,因为Weekday.WEDNESDAY就是代表周三的意思,但是,因为在Weekday中的restday类型还是int类型, 

我们依然可以设置随意的值,e.setRestDay(13);所以我们的数据类型安全问题还是没有解决

解决办法:因为int类型不安全,我们把休息日使用一个对象类型来表示,并固定该休息日的值只能是周一到周日

这个就是枚举引入的过程,

简单的写法是



    


猜你喜欢

转载自blog.csdn.net/qq_38446833/article/details/80959789