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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lonely_zb 中级黑马   /  2013-9-4 18:16  /  972 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

枚举的定义:
枚举类是一个class,而且是一个不可被继承的final类,其中的元素都是类静态常量。枚举被当做一个类来对待的话,在jdk中的java.lang包中有一个Enum类,查看API得知它也是一个枚举对象啊...那为什么,请看代码
public enum WeekDay{
  //枚举类里包含所有静态常量
  SUN,MON,THE,WED,THU,FRI,STA
} ---这样定义是正确的
可是
public Enum WeekDay{
  //枚举类里包含所有静态常量
  SUN,MON,THE,WED,THU,FRI,STA
} ---就会报错,请问是为什么呢?
为什么枚举被当做一个类来对待的话,java.lang包中提供的Enum又是什么作用呢?

评分

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

查看全部评分

3 个回复

倒序浏览
构造方法详细信息
Enum
protected Enum(String name,
               int ordinal)单独的构造方法。程序员无法调用此构造方法。该构造方法用于由响应枚举类型声明的编译器发出的代码。

而enum是一个类似标识符的东西吧...

我个人理解

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 第一印象 于 2013-9-4 21:13 编辑

这个,怎么说呢,enum其实在java中是一个关键字,跟class一样的,关键字什么意思知道吧,就是被赋予了特殊含义的一个单词啦,比如说你标记一个class的关键字我就知道你是一个类,标记一个enum的关键字我就知道你是一个枚举,就这个意思,而Enum不是一个关键字,它只是一个类的名称,像String类、Object类一样的,另外还有一些区别,我们知道所有被标记为enum的都是枚举,而枚举类默认都继承了java.lang.Enum类,Enum类就相当于是所有枚举类的上帝(父类),枚举类的上帝不是Object,而是Enum,就这些区别,有个细节,在张孝祥老师讲解的银行业务调度系统里,有个地方声明了一个枚举类,定义银行的各种用户类型,在返回VIP用户的时候,直接返回的name(),这个方法怎么来的呢?就是因为枚举类默认继承了Enum类,而Enum类拥有这个方法,所以可以直接用

评分

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

查看全部评分

回复 使用道具 举报
如果您的问题已经解决
请更改分类未解决为已解决
保持队形,谢谢合作

详情参考 如何修改分类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马