枚举类个人认为是一种思想上的规则,形容的是某一类事物,只有具体的几个元素,就比如说星期。一个星期只有周一~周日这7个可操作的元素,不会有人说星期八是几号。
如果将这种思想通过JAVA来体现的话,那么就等于创建的这个星期类不能去自己创建个星期八的对象,而我们能操作的只是它类中的周一~周日。既然不能自由创建,那么就只有将构造函数private。而在JAVA中对于这种类,就并不是用class定义,而是将这样的类用enum标示出来。也就是说构造函数私有化是枚举类中的一种规定。
我在学枚举的时候是把它看成了一个类似于单例设计模式来理解的。只是单例是我们主动去操作,而枚举则是JAVA内部规则定义。
个人理解,希望可以帮到楼主。 |