|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
主要缺点就是:速度比较慢,没有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这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。 |
|