http://www.ibm.com/developerworks/cn/java/j-lo-enum/

解决方案 »

  1.   

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

  2.   

    看到java编程思想里写到支持多路分发,用枚举实现的代码看起来非常的简洁,后来了解到C++中也有枚举支持,所以我在想,是不是为了某些高深而又优雅的设计,才有了枚举这个概念?能否举一二例子?状态机模式?求高人指点一二。
    个人感觉还是范围限定的作用比较重要,多路分发,应该属于应用,int也能实现的。
    比如描述红绿灯,如果用整型来表示,可以用-1表示红灯,1表示绿灯,0表示黄灯,如果能够严格遵守{-1,0,1}这么个取值范围,那也没问题,但是这是需要程序保障,在运行时,不会出现-2、2这样越界的应用。如果用枚举,限定为enum{RED,GREEN,YELLOW},这样就不可能出现越界了(至少在编译期就提示错误了)。
      

  3.   

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