A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© XinWen 中级黑马   /  2014-5-3 14:00  /  1073 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

3 个回复

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

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
Lin0411 发表于 2014-5-3 14:57
用enum定义枚举类默认继承了java.lang.Enum类而不是继承了Object类。枚举类的所有实例必须在枚举类中显式列 ...

感谢 清晰多了
回复 使用道具 举报
冲突了啊,之前的RED是对象,后边的就变成了变量,或者你将名换一个即可以了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马