黑马程序员技术交流社区

标题: 枚举中的每个值都是枚举类的对象吗? [打印本页]

作者: mulua    时间: 2013-6-23 09:20
标题: 枚举中的每个值都是枚举类的对象吗?
本帖最后由 孙百鑫 于 2013-6-27 07:48 编辑

枚举中的每个值都是枚举类的对象吗?比如 交通灯里的 RED YELLOW等
他们会自动调用枚举类的构造函数吗
作者: sweethui1    时间: 2013-6-23 15:43
枚举类中声明的每一个枚举值代表枚举类的一个实例对象
与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. }

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



作者: HM朱蛟    时间: 2013-6-26 04:41
会的 只要你写在枚举中的方法 构造方法 抽象方法   只要你写了  那么再构建一个枚举对象(即是这个enum的元素)时就要去实现和传参  枚举个人感觉不是很难  2个7000项目吃透   枚举也就懂了  
作者: 郭伟杰    时间: 2013-6-26 12:15
是的     会调用      
作者: 孙百鑫    时间: 2013-6-27 07:47
楼主您好。我已将您的帖子改成已解决。如果帖子发布长时间没加分。及时联系我。以免漏分的情况发生{:soso_e100:}




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