日期:2014-05-18  浏览次数:20804 次

ENUM枚举用处在哪里?
看书看的我很迷糊,枚举的用途在哪里,多路分发是什么意思?
------解决方案--------------------
http://www.ibm.com/developerworks/cn/java/j-lo-enum/
------解决方案--------------------
枚举本质是整型,有点在于,枚举限定了范围,不会出现取值越界的情况。
------解决方案--------------------
引用:
Quote: 引用:

枚举本质是整型,有点在于,枚举限定了范围,不会出现取值越界的情况。

看到java编程思想里写到支持多路分发,用枚举实现的代码看起来非常的简洁,后来了解到C++中也有枚举支持,所以我在想,是不是为了某些高深而又优雅的设计,才有了枚举这个概念?能否举一二例子?

状态机模式?求高人指点一二。


个人感觉还是范围限定的作用比较重要,多路分发,应该属于应用,int也能实现的。
比如描述红绿灯,如果用整型来表示,可以用-1表示红灯,1表示绿灯,0表示黄灯,如果能够严格遵守{-1,0,1}这么个取值范围,那也没问题,但是这是需要程序保障,在运行时,不会出现-2、2这样越界的应用。如果用枚举,限定为enum{RED,GREEN,YELLOW},这样就不可能出现越界了(至少在编译期就提示错误了)。

------解决方案--------------------
枚举可以定义一些固定量用于switch语句比如可以用它来代表用户的权限。。。