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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

希望知道的朋友给些回答,谢谢!因为我刚看到加强的基础视频,看到枚举,听了一些感觉不到其好处在哪里!

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

7 个回复

倒序浏览
枚举类型相当于自己定义一个数据类型,而这个数据类型的名字是自己起的,类型里面的内容也是自己定义的,当用到这个类型的变量时,只能输入已经定义好的内容,这样就可以防止其他程序员输入不符合规定的值.
其实可以参考一下boolean型,boolean里面的内容是固定的,只有trun和false,所以当用到boolean型的变量的时候,只能选择true或false,这样就可以防止输入不符合规定的值.
这只是一个比喻,boolean并不是枚举类型

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
枚举的好处
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,如果你在引用的过程当中,用到了这几个固定取值中以外的值,编译器就会报错。枚举可以让编译器在编译时期就可以控制源程序填写的非法值,普通变量的方式在开发阶段无法实现这一目标。
当枚举只有一个成员时,就可以作为一种单例的实现方式。单例可以用枚举来实现。这样的好处是,私有的构造方法不用写了。
我们再说一个例子,比如我们一年中有12个月,一周有7天,这些取值都是固定值当中的一个吧,你总不能选择一个13月份,或者选择一个星期八,用户在用这些固定的对象的时候只能指定固定值中的一个,不能是其它的值。如果我们不用枚举来实现,我们用普通的方法,让用户任意的去指定自定义的值,如果用户喝醉了,他指定了一个星期八,当他的老板看到他做的报表是不是会把他开除呢。
我们在设计程序的时候就必须明确这个设计目标是不是只有固定的某些取值。这样也是为了更接近自然的描述我们日常生活中的事物啊。

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
想要定义一个color类,它只能有red green blue 三种值 其他任何值都是非法的,可以构造这样的方法,带是要做很多的工作 同时还带来了各种不安全的问题,

那么在JDK1.5之后就出现了枚举类,可以让程序更加安全
回复 使用道具 举报
最大的好处是提高安全性
回复 使用道具 举报
就是对值的范围进行限定 只能是枚举构造的时候生成的那些对象,其它的都算非法
回复 使用道具 举报
OMG 中级黑马 2012-3-16 21:58:53
7#
1,概括:枚举,通俗来说,相当与类,一种特色的类;
2,分析:一般的类,想建立多少个对象就建立多少个对象,比如Date类,有无数个时刻;但有些类的对象数是固定的,比如一周只有周一到周日七天,最重要的是,性别这类事物只有两个对象(男、女);
3,好处:在现实生活中,在以后的实际开发中,都会涉及到性别、星期、城市等数据,都需要枚举来对对象进行固定。
4,思考:普通类,可以建立无数个对象;单例设计模式设计出来的类,只有一个对象;那么在一个和无数个之间,由什么来过度呢?枚举这一“类”,不就是弥补了这个空缺吗?
回复 使用道具 举报
OMG 中级黑马 2012-3-16 21:59:12
8#
1,概括:枚举,通俗来说,相当与类,一种特色的类;
2,分析:一般的类,想建立多少个对象就建立多少个对象,比如Date类,有无数个时刻;但有些类的对象数是固定的,比如一周只有周一到周日七天,最重要的是,性别这类事物只有两个对象(男、女);
3,好处:在现实生活中,在以后的实际开发中,都会涉及到性别、星期、城市等数据,都需要枚举来对对象进行固定。
4,思考:普通类,可以建立无数个对象;单例设计模式设计出来的类,只有一个对象;那么在一个和无数个之间,由什么来过度呢?枚举这一“类”,不就是弥补了这个空缺吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马