黑马程序员技术交流社区

标题: java枚举的疑问2 [打印本页]

作者: lonely_zb    时间: 2013-9-4 18:21
标题: java枚举的疑问2
首先贴上代码:

public enum WeekDay{
  //枚举类里包含所有静态常量
  SUN,MON,THE,WED,THU,FRI,STA
}

枚举是一个不可被继承的类,枚举的元素都必须是静态常量,而且是这个枚举类的示例

如上代码,我定义的sun...sta,都并没有指明说是静态常量啊? 而是这样却可以啊...

但是我这样写的话却不行:

public enum WeekDay{
  //枚举类里包含所有静态常量
  1,2,3,4;
}

为什么我写成String类型的就额可以呢? 而整行的数据却不可以...
不知道为啥?求解

作者: 武嘉豪    时间: 2013-9-4 18:31
SUN什么的是用来做静态常量的名称的不是String型的数据,如果数据的话应该是"SUN"

而数字不能最为名称,所以就会报错


个人理解...
作者: 王松松    时间: 2013-9-4 20:26
本帖最后由 王松松 于 2013-9-4 20:27 编辑

定义静态常量:
public static final int sun = 0;
public static final int mon =1;

但是你有见过这样定义的么?
public static final int 0;
public static final int 1;
作者: 第一印象    时间: 2013-9-4 21:20
枚举里面的每个值其实跟类里面的private static final 类名 对象名 = new 类名()  这种方式是类似的,java基础课程第二堂课还是哪,我记得毕向东老师讲过的,标识符不能以数字开头的,枚举中的项也是一样,不能以数组开头,枚举的值你可以有数字,但不能是数字开头,这么说你明白么?
作者: 薛鹏鹏    时间: 2013-9-4 23:46
如果您的问题已经解决
请更改分类未解决为已解决
保持队形,谢谢合作

详情参考 如何修改分类





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