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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾辉 黑马帝   /  2012-1-12 13:21  /  2844 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java中的枚举是什么?他的具体用法是什么呢?
什么情况下用枚举而不用static final..为什么?
枚举是不是像一个类,为什么 在其他类中不可引用?
谢谢

2 个回复

倒序浏览
       当你使用一个类的对象是固定的几个时,就可以把这个类定义成枚举(枚举也就是对象可数)。枚举确实也是JAVA类,只不过它是一个特殊类,它的对象是在定义枚举类的时候自己的对象当元素来看,增加一个元素,就相当于创建一个实例。而不是像class类那样创建一个实例时的用new.在枚举类中也可以有方法什么的,和class类中的方法定义一样
       枚举在其它类中是可以引用的,只不过引用对象里的格式是:枚举类名.对象名或枚举类名.方法名。

评分

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

查看全部评分

回复 使用道具 举报
   枚举就是把集合里的对象元素 一个一个提取出来!比如说 你买了一合巧克力 里面有草莓味的 有香草口味的 有苹果口味的 你想把他们拿出来 就必须用“手”一个一个把他们拿出来 并且一次只能取一个哦 这里的手就是枚举器 你取的动作就是枚举的过程。
   我们为什么要用枚举而不用public static final的常量解决类似问题。 因为“接口直观,类型安全”。为什么说接口直观呢? 因为如果你定义了枚举,那么需要枚举值作为参数的方法,就能在方法的参数里,直接写枚举这个类名,这样别人一看就知道,哦,我这应该是传一个枚举值。
   相比较而言用public static final的方法就不这么直观了,假设是个final int那方法的参数里就是写int, 是个String那就是String。
   如果不了解代码,很有可能让别人误觉得这里传个int,String就可以了,谁会想到要传事先定义好的一些变量呢?
   为什么说安全呢?我的理解是,因为你的参数是一个枚举类型,那么你往里面传的时候就只能传枚举类型里面定义的一些值了,传不进其他值,这从某种意义上来说就是安全了。
   枚举是一个类,里面的对象能被引用。

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马