仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 569|回复: 8
打印 上一主题 下一主题

[学习教程] 发布一篇Java 言语中 Enum 范例的利用先容

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:01:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
主要缺点就是:速度比较慢,没有C和C++快
Enum范例的先容
列举范例(EnumeratedType)很早就呈现在编程言语中,它被用来将一组相似的值包括到一品种型傍边。而这类列举范例的称号则会被界说成举世无双的范例形貌符,在这一点上和常量的界说类似。不外比拟较常量范例,列举范例能够为声名的变量供应更年夜的取值局限。
举个例子来讲明一下,假如但愿为彩虹刻画出七种色彩,你能够在Java程序中经由过程常量界说体例来完成。
清单1.常量界说
  1. PublicstaticclassRainbowColor{
  2. //红橙黄绿青蓝紫七种色彩的常量界说
  3. publicstaticfinalintRED=0;
  4. publicstaticfinalintORANGE=1;
  5. publicstaticfinalintYELLOW=2;
  6. publicstaticfinalintGREEN=3;
  7. publicstaticfinalintCYAN=4;
  8. publicstaticfinalintBLUE=5;
  9. publicstaticfinalintPURPLE=6;
  10. }
复制代码
利用的时分,你能够在程序中间接援用这些常量。可是,这类体例仍是存在着一些成绩。
范例不平安
因为色彩常量的对应值是整数形,以是程序实行过程当中很有大概给色彩变量传进一个恣意的整数值,招致呈现毛病。
没有定名空间
因为色彩常量只是类的属性,当你利用的时分不能不经由过程类来会见。
分歧性差
由于整形列举属于编译期常量,以是编译历程完成后,一切客户端和服务器端援用的中央,会间接将整数值写进。如许,当你修正旧的列举整数值后大概增添新的列举值后,一切援用中央代码都必要从头编译,不然运转时候就会呈现毛病。
范例无指意性
因为色彩列举值仅仅是一些无任何寄义的整数值,假如在运转期调试时分,你就会发明日记中有良多把戏数字,但除程序员本身,其别人很难懂白其奥妙。
怎样界说Enum范例
为了改善Java言语在这方面的不敷填补缺陷,5.0版本SDK公布时分,在言语层面上增添了列举范例。列举范例的界说也十分的复杂,用enum关头字加上称号和年夜括号包括起来的列举值体便可,比方下面提到的彩虹色彩就能够用新的enum体例来从头界说:
enumRainbowColor{RED,ORANGE,YELLOW,GREEN,CYAN,BLUE,PURPLE}
从下面的定义情势来看,仿佛Java中的列举范例很复杂,但实践上Java言语标准付与列举范例的功效十分的壮大,它不但是复杂地将整形数值转换成对象,而是将列举范例界说变化成一个完全功效的类界说。这类范例界说的扩展同意开辟者给列举范例增添任何办法和属性,也能够完成恣意的接口。别的,Java平台也为Enum范例提供了高质量的完成,好比默许完成Comparable和Serializable接口,闪开发者一样平常情形下不必体贴这些细节。
回到本文的主题下去,引进列举范例究竟可以给我们开辟带来甚么样优点呢?一个最间接的好处就是扩展switch语句利用局限。5.0之前,Java中switch的值只可以是复杂范例,好比int、long、char,有了列举范例以后,就能够利用对象了。如许一来,程序的把持选择就变得加倍的便利,看上面的例子:
清单2.界说Enum范例
  1. //界说一周七天的列举范例
  2. publicenumWeekDayEnum{Mon,Tue,Wed,Thu,Fri,Sat,Sun}
  3. //读取当天的信息
  4. WeekDayEnumtoday=readToday();
  5. //依据日期来选择举行举动
  6. switch(today){
  7. Mon:dosomething;break;
  8. Tue:dosomething;break;
  9. Wed:dosomething;break;
  10. Thu:dosomething;break;
  11. Fri:dosomething;break;
  12. Sat:playsportsgame;break;
  13. Sun:havearest;break;
  14. }
复制代码
关于这些列举的日期,JVM城市在运转期机关成出一个复杂的对象实例逐一对应。这些对象都有唯一的identity,相似整形数值一样,switch语句就依据此来举行实行跳转。
<p>
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。
简单生活 该用户已被删除
沙发
发表于 2015-1-20 12:45:34 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
不帅 该用户已被删除
板凳
发表于 2015-1-29 07:09:56 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
因胸联盟 该用户已被删除
地板
发表于 2015-2-5 23:57:02 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-14 09:28:24 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
再见西城 该用户已被删除
6#
发表于 2015-3-4 05:20:30 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
蒙在股里 该用户已被删除
7#
发表于 2015-3-11 17:30:04 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
爱飞 该用户已被删除
8#
发表于 2015-3-19 03:47:24 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
金色的骷髅 该用户已被删除
9#
发表于 2015-3-27 07:09:46 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表