小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JDK1.5 泛型之外的其它新特性 - 質(zhì)量 品質(zhì) WITH JAVA - BlogJav...

 nbtymm 2006-11-10

JDK1.5泛型之外的其它新特性,泛型相關(guān)看這里
  
For-Each循環(huán)
For-Each循環(huán)得加入簡(jiǎn)化了集合的遍歷。假設(shè)我們要遍歷一個(gè)集合對(duì)其中的元素進(jìn)行一些處理。典型的代碼為:

1 class  Bean {
2   public   void  run() {
3   // .
4  }

5 }

6

 

 1 ArrayList list  =   new  ArrayList();
 2 list.add( new  Bean());
 3 list.add( new  Bean());
 4 list.add( new  Bean());
 5
 6 for (Iterator ie = list.iterator(); list.hasNext();) {
 7  Bean bean  =  (Bean)ie.next();
 8  bean.run();
 9  
10 }

11
12

使用For-Each循環(huán),配合泛型,我們可以把代碼改寫成,

 1 ArrayList < Bean >  list  =   new  ArrayList < Bean > ();
 2 list.add( new  Bean());
 3 list.add( new  Bean());
 4 list.add( new  Bean());
 5
 6 for (Bean bean : list ) {
 7  bean.run();
 8 }

 9
10

這段代碼要比上面清晰些,少寫些,并且避免了強(qiáng)制類型轉(zhuǎn)換。
  
  
2.枚舉(Enums)
JDK1.5加入了一個(gè)全新類型的“類”-枚舉類型。為此JDK1.5引入了一個(gè)新關(guān)鍵字enmu.
我們可以這樣來(lái)定義一個(gè)枚舉類型。
public enum Color{
    Red,
    White,
    Blue
}
然后可以這樣來(lái)使用Color myColor = Color.Red.
枚舉類型還提供了兩個(gè)有用的靜態(tài)方法values()和valueOf(). 我們可以很方便地使用它們,例如
for(Color c : Color.values())
   System.out.println(c);  

6.靜態(tài)導(dǎo)入(Static Imports)
要使用用靜態(tài)成員(方法和變量)我們必須給出提供這個(gè)方法的類。使用靜態(tài)導(dǎo)入可以使被導(dǎo)入類的所有靜
態(tài)變量和靜態(tài)方法在當(dāng)前類直接可見,使用這些靜態(tài)成員無(wú)需再給出他們的類名。
import static java.lang.Math.*;
r = round(); //無(wú)需再寫r = Math.round();
不過(guò),過(guò)度使用這個(gè)特性也會(huì)一定程度上降低代碼地可讀性

5.可變參數(shù)(Varargs)
可變參數(shù)使程序員可以聲明一個(gè)接受可變數(shù)目參數(shù)的方法。注意,可變參數(shù)必須是函數(shù)聲明中的最后一個(gè)參數(shù)。
假設(shè)我們要寫一個(gè)簡(jiǎn)單的方法打印一些對(duì)象

例如:我們要實(shí)現(xiàn)一個(gè)函數(shù),把所有參數(shù)中最大的打印出來(lái),如果沒(méi)有參數(shù)就打印一句話。
需求:
prtMax();
prtMax(1);
prtMax(1,2);
prtMax(1,2,3);
......
prtMax(1,2,3...n);
以前的實(shí)現(xiàn)方式:

 1 prtMax() {
 2  System.out.println( " no parameter " );
 3 }

 4 prtMax( int  a) {
 5  System.out.println(a);
 6 }

 7 prtMax( int  a, int  b) {
 8   if (a > b) {
 9   System.out.println(a);
10  }
else {
11   System.out.println(b);
12  }

13 }

14
15

我們發(fā)先寫多少個(gè)都不夠,子子孫孫無(wú)窮盡也
改造一下,在上邊的基礎(chǔ)上,再加上
prtMax(int a,int b,int[] c){
 //....比較最大的輸出
 這樣能實(shí)現(xiàn)了,但是要求使用的人必須要在輸入前把數(shù)字做成int[]
}
看看現(xiàn)在使用新特性怎么實(shí)現(xiàn):

 1 prtMax( int   nums) {
 2   if (nums.length == 0 ) {
 3   System.out.println( " no parameter " );
 4  }
else {
 5    int  maxNum  =   0 ;
 6    for ( int  num :nums) {
 7     if (num  > maxNum) {
 8     maxNum  =  num;
 9    }

10   }

11   System.out.println(maxNum);
12  }

13 }

14

好了,無(wú)論多少個(gè)參數(shù)都可以了
prtMax();
prtMax(1);
prtMax(1,2);
prtMax(1,2,3,4,5,6,7,8, ....,n);

另外JDK1.5中可以像c中這樣用了
String str="dd";
int k =2;
System.out.printf("str=%s k=%d",str,k);

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多