仓酷云
标题:
发布一篇Java 言语中 Enum 范例的利用先容
[打印本页]
作者:
逍遥一派
时间:
2015-1-18 11:01
标题:
发布一篇Java 言语中 Enum 范例的利用先容
主要缺点就是:速度比较慢,没有C和C++快
Enum范例的先容
列举范例(EnumeratedType)很早就呈现在编程言语中,它被用来将一组相似的值包括到一品种型傍边。而这类列举范例的称号则会被界说成举世无双的范例形貌符,在这一点上和常量的界说类似。不外比拟较常量范例,列举范例能够为声名的变量供应更年夜的取值局限。
举个例子来讲明一下,假如但愿为彩虹刻画出七种色彩,你能够在Java程序中经由过程常量界说体例来完成。
清单1.常量界说
PublicstaticclassRainbowColor{
//红橙黄绿青蓝紫七种色彩的常量界说
publicstaticfinalintRED=0;
publicstaticfinalintORANGE=1;
publicstaticfinalintYELLOW=2;
publicstaticfinalintGREEN=3;
publicstaticfinalintCYAN=4;
publicstaticfinalintBLUE=5;
publicstaticfinalintPURPLE=6;
}
复制代码
利用的时分,你能够在程序中间接援用这些常量。可是,这类体例仍是存在着一些成绩。
范例不平安
因为色彩常量的对应值是整数形,以是程序实行过程当中很有大概给色彩变量传进一个恣意的整数值,招致呈现毛病。
没有定名空间
因为色彩常量只是类的属性,当你利用的时分不能不经由过程类来会见。
分歧性差
由于整形列举属于编译期常量,以是编译历程完成后,一切客户端和服务器端援用的中央,会间接将整数值写进。如许,当你修正旧的列举整数值后大概增添新的列举值后,一切援用中央代码都必要从头编译,不然运转时候就会呈现毛病。
范例无指意性
因为色彩列举值仅仅是一些无任何寄义的整数值,假如在运转期调试时分,你就会发明日记中有良多把戏数字,但除程序员本身,其别人很难懂白其奥妙。
怎样界说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范例
//界说一周七天的列举范例
publicenumWeekDayEnum{Mon,Tue,Wed,Thu,Fri,Sat,Sun}
//读取当天的信息
WeekDayEnumtoday=readToday();
//依据日期来选择举行举动
switch(today){
Mon:dosomething;break;
Tue:dosomething;break;
Wed:dosomething;break;
Thu:dosomething;break;
Fri:dosomething;break;
Sat:playsportsgame;break;
Sun:havearest;break;
}
复制代码
关于这些列举的日期,JVM城市在运转期机关成出一个复杂的对象实例逐一对应。这些对象都有唯一的identity,相似整形数值一样,switch语句就依据此来举行实行跳转。
<p>
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。
作者:
简单生活
时间:
2015-1-20 12:45
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者:
不帅
时间:
2015-1-29 07:09
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
因胸联盟
时间:
2015-2-5 23:57
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
飘飘悠悠
时间:
2015-2-14 09:28
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者:
再见西城
时间:
2015-3-4 05:20
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者:
蒙在股里
时间:
2015-3-11 17:30
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者:
爱飞
时间:
2015-3-19 03:47
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者:
金色的骷髅
时间:
2015-3-27 07:09
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2