|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解j2se列举
在已往,我们必需用整型常数取代列举,跟着J2SE5.0的公布,如许的办法终究一往不复返了。
一个复杂的列举范例界说以下:
publicenumWeather
{
SUNNY,RAINY,CLOUDY
}
列举能够用在switch语句中:
Weatherweather=Weather.CLOUDY;
switch(weather)
{
caseSUNNY:
System.out.println("Itssunny");
break;
caseCLOUDY:
System.out.println("Itscloudy");
break;
caseRAINY:
System.out.println("Itsrainy");
break;
}
列举范例能够有本人的机关办法,不外必需是公有的,也能够有其他办法的界说,以下面的代码:
publicenumWeather{
SUNNY("Itissunny"),
RAINY("Itisrainy"),
CLOUDY("Itiscloudy");
privateStringdescription;
privateWeather(Stringdescription){
this.description=description;
}
publicStringdescription(){
returnthis.description;
}
}
上面一段代码是对这个列举的一个利用:
for(Weatherw:Weather.values())
{
System.out.printf("Descriptionof%sis"%s".
",w,w.description());
}
Weatherweather=Weather.SUNNY;
System.out.println(weather.description()+"today");
假如我们有一个列举范例,暗示四则运算,我们但愿在个中界说一个办法,针对分歧的值做分歧的运算,那末我们能够如许界说:
publicenumOperation{
PLUS,MINUS,TIMES,DIVIDE;
//Doarithmeticoprepresentedbythisconstant
doubleeval(doublex,doubley){
switch(this){
casePLUS:returnx+y;
caseMINUS:returnx-y;
caseTIMES:returnx*y;
caseDIVIDE:returnx/y;
}
thrownewAssertionError("Unknownop:"+this);
}
}
如许写的成绩是你假如没有最初一行抛出非常的语句,编译就没法经由过程。并且假如我们想要增加一个新的运算,就必需时候记住要在eval中增加对应的操纵,万一健忘的话就会抛出非常。
J2SE5.0供应懂得决这个成绩的举措,就是你能够把eval函数声明为abstract,然后为每一个值写分歧的完成,以下所示:
publicenumOperation{
PLUS{doubleeval(doublex,doubley){returnx+y;}},
MINUS{doubleeval(doublex,doubley){returnx-y;}},
TIMES{doubleeval(doublex,doubley){returnx*y;}},
DIVIDE{doubleeval(doublex,doubley){returnx/y;}};
abstractdoubleeval(doublex,doubley);
}
如许就制止了下面所说的两个成绩,不外代码量增添了一些,可是跟着从此各类Java开辟IDE的改善,代码量的成绩应当会被淡化。
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。 |
|