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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨志 高级黑马   /  2012-4-28 18:46  /  2550 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JAVA既然枚举是规定了定义变量值是固定的值!那么为什么不去用数组实现呢? 数组也是可以去固定变量的值。然后直接去调。这个真心不明白!

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

5 个回复

倒序浏览
枚举既然存在,肯定是有其存在的意义的,JDK1.5更新之一嘛,枚举还是比较方便的,因为枚举中定义的变量名可以更直观更有意义,提高了阅读性,而且用来固定变量的值比数组更方便,枚举是一个类,你定义好了这个类就可以反复使用了,也就是提高了复用性,你用数组的话要先new一个数组对象,再一个一个赋值,还是麻烦一点的,再说数组不能单独存在,必须依靠类,作为类的成员变量存在,调用并不如枚举简单方便。个人观点,仅供参考!呵呵~

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
枚举里边你还可以自定义方法啊
回复 使用道具 举报
枚举对象在任一时刻只能有一个常量值,数组对象在任一时刻可以有多个值。
数组存放的都是同一种类型的数据,但枚举可存放不同数据类型的数据。其次是枚举是值类型,数组是引用类型。
回复 使用道具 举报
本帖最后由 jiyixuan 于 2012-4-28 20:02 编辑

举个常用的例子,你要表示星期1-7,你可以用int1-7,但是当你把它作为参数的时候,有时后你就给考虑传入0,8的情况.而且用数字表示还需要相应的注释和文档.
这个时候你定义个一个枚举,名字就叫字面就叫Monday , Tuesday ,....就行,直观,并且值可控。


找到早期的枚举举例程序,您可以看看。
  1. public final class Month{
  2. private String name;
  3. private Month (String nm){name=nm;}
  4. public String toString(){return name;}
  5. public static final Month
  6. JAN=new Month("January"),
  7. FEB=new Month("February"),
  8. MAR=new Month("March"),
  9. APR=new Month("April"),
  10. MAY=new Month("May"),
  11. JUN=new Month("June"),
  12. JUL=new Month("July"),
  13. AUG=new Month("August"),
  14. SEP=new Month("September"),
  15. OCT=new Month("October"),
  16. NOV=new Month("November"),
  17. DEC=new Month("December");
  18. public static final Month month[]={
  19. JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
  20. };
  21. public static final Month number(int ord){
  22. return month[ord-1];
  23. }
  24. //main
  25. public static void main(String args[]){
  26. Month m=Month.JAN;
  27. System.out.println(m);

  28. m=Month.number(12);
  29. System.out.println(m);

  30. System.out.println(m==Month.DEC);
  31. System.out.println(m.equals(Month.DEC));

  32. System.out.println(Month.month[3]);
  33. System.out.println(Month.APR);
  34. }
  35. }
复制代码
回复 使用道具 举报
枚举类型就是将一个类型限制在可控制的范围内。枚举可以限定参数的个数,对调用者的行为能更加严格地进行控制。把一些运行期的参数检查放到了编译期,做到这点是一个很大的进步。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马