黑马程序员技术交流社区
标题:
枚举!真心求指导!
[打印本页]
作者:
杨志
时间:
2012-4-28 18:46
标题:
枚举!真心求指导!
JAVA既然枚举是规定了定义变量值是固定的值!那么为什么不去用数组实现呢? 数组也是可以去固定变量的值。然后直接去调。这个真心不明白!
作者:
张卯
时间:
2012-4-28 19:09
枚举既然存在,肯定是有其存在的意义的,JDK1.5更新之一嘛,枚举还是比较方便的,因为枚举中定义的变量名可以更直观更有意义,提高了阅读性,而且用来固定变量的值比数组更方便,枚举是一个类,你定义好了这个类就可以反复使用了,也就是提高了复用性,你用数组的话要先new一个数组对象,再一个一个赋值,还是麻烦一点的,再说数组不能单独存在,必须依靠类,作为类的成员变量存在,调用并不如枚举简单方便。个人观点,仅供参考!呵呵~
作者:
张小庆
时间:
2012-4-28 19:11
枚举里边你还可以自定义方法啊
作者:
张文建
时间:
2012-4-28 19:24
枚举对象在任一时刻只能有一个常量值,数组对象在任一时刻可以有多个值。
数组存放的都是同一种类型的数据,但枚举可存放不同数据类型的数据。其次是枚举是值类型,数组是引用类型。
作者:
曾_强
时间:
2012-4-28 19:44
本帖最后由 jiyixuan 于 2012-4-28 20:02 编辑
举个常用的例子,你要表示星期1-7,你可以用int1-7,但是当你把它作为参数的时候,有时后你就给考虑传入0,8的情况.而且用数字表示还需要相应的注释和文档.
这个时候你定义个一个枚举,名字就叫字面就叫Monday , Tuesday ,....就行,直观,并且值可控。
找到早期的枚举举例程序,您可以看看。
public final class Month{
private String name;
private Month (String nm){name=nm;}
public String toString(){return name;}
public static final Month
JAN=new Month("January"),
FEB=new Month("February"),
MAR=new Month("March"),
APR=new Month("April"),
MAY=new Month("May"),
JUN=new Month("June"),
JUL=new Month("July"),
AUG=new Month("August"),
SEP=new Month("September"),
OCT=new Month("October"),
NOV=new Month("November"),
DEC=new Month("December");
public static final Month month[]={
JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
};
public static final Month number(int ord){
return month[ord-1];
}
//main
public static void main(String args[]){
Month m=Month.JAN;
System.out.println(m);
m=Month.number(12);
System.out.println(m);
System.out.println(m==Month.DEC);
System.out.println(m.equals(Month.DEC));
System.out.println(Month.month[3]);
System.out.println(Month.APR);
}
}
复制代码
作者:
曾_强
时间:
2012-4-28 19:48
枚举类型就是将一个类型限制在可控制的范围内。枚举可以限定参数的个数,对调用者的行为能更加严格地进行控制。把一些运行期的参数检查放到了编译期,做到这点是一个很大的进步。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2