黑马程序员技术交流社区

标题: enum问题 [打印本页]

作者: XinWen    时间: 2014-5-3 14:00
标题: enum问题
本帖最后由 XinWen 于 2014-5-3 14:01 编辑
  1. <div class="blockcode"><blockquote>enum Lamp2{
  2.         Red(3, 0),Green,Yello;
  3.        
  4.         public static final int RED = 0;
  5.         public static final int GREEN = 1;
  6.         public static final int YELLO = 2;
  7.        
  8.         private int mTime;
  9.         private int mColor;
  10.        
  11.        
  12.         private Lamp2(){
  13.                
  14.         }
  15.        
  16.         private Lamp2(int pTime, int pColor){
  17.                 mTime = pTime;
  18.                 mColor = pColor;
  19.         }
  20. }
复制代码

为什么 定义 枚举 值列表的时候, 不能访问下面定义的常量,比如我上面的 Red穿参数的时候,不能用下面定义的 RED

作者: Lin0411    时间: 2014-5-3 14:57
用enum定义枚举类默认继承了java.lang.Enum类而不是继承了Object类。枚举类的所有实例必须在枚举类中显式列出,否则这个枚举类将永远都不能产生实例。注意实在枚举内种。试图通过往枚举类中的实例中传入参数是不太可能的。首先定义的成员变量必须放在枚举实例之后,而又试图在实例中传入构造参数,这样就产生了矛盾,编译器会提示参数未定义。既然枚举的作用是描述有限固定的数据,楼主这样做有点画蛇添足!!
作者: XinWen    时间: 2014-5-3 15:22
Lin0411 发表于 2014-5-3 14:57
用enum定义枚举类默认继承了java.lang.Enum类而不是继承了Object类。枚举类的所有实例必须在枚举类中显式列 ...

感谢 清晰多了
作者: shi0000    时间: 2014-5-3 15:37
冲突了啊,之前的RED是对象,后边的就变成了变量,或者你将名换一个即可以了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2