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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mulua 中级黑马   /  2013-6-23 09:20  /  2360 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙百鑫 于 2013-6-27 07:48 编辑

枚举中的每个值都是枚举类的对象吗?比如 交通灯里的 RED YELLOW等
他们会自动调用枚举类的构造函数吗

4 个回复

倒序浏览
枚举类中声明的每一个枚举值代表枚举类的一个实例对象
与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的。
枚举类也可以实现接口、或继承抽象类。
例:为Color增加一个方法随机返回一个颜色
  1. public enum Color {
  2. Red,
  3. Green,
  4. Blue;

  5. private static int number = Color.values().length ;

  6. public static Color getRandomColor(){
  7. long random = System.currentTimeMillis() % number;
  8. switch ((int) random){
  9. case 0:
  10. return Color.Red;
  11. case 1:
  12. return Color.Green;
  13. case 2:
  14. return Color.Blue;
  15. default : return Color.Red;
  16. }
  17. }
  18. }

复制代码
可以看出这在枚举类型里定义变量和方法和在普通类里面定义方法和变量没有什么区别。唯一要注意的只是变量和方法定义必须放在所有枚举值定义的后面,否则编译器会给出一个错误。


评分

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

查看全部评分

回复 使用道具 举报
会的 只要你写在枚举中的方法 构造方法 抽象方法   只要你写了  那么再构建一个枚举对象(即是这个enum的元素)时就要去实现和传参  枚举个人感觉不是很难  2个7000项目吃透   枚举也就懂了  
回复 使用道具 举报
是的     会调用      
回复 使用道具 举报
楼主您好。我已将您的帖子改成已解决。如果帖子发布长时间没加分。及时联系我。以免漏分的情况发生{:soso_e100:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马