<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    DANCE WITH JAVA

    開發出高質量的系統

    常用鏈接

    統計

    積分與排名

    好友之家

    最新評論

    JDK1.5 泛型之外的其它新特性

    JDK1.5泛型之外的其它新特性,泛型相關看這里
      
    For-Each循環
    For-Each循環得加入簡化了集合的遍歷。假設我們要遍歷一個集合對其中的元素進行一些處理。典型的代碼為:

    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循環,配合泛型,我們可以把代碼改寫成,

     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

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

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

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

    例如:我們要實現一個函數,把所有參數中最大的打印出來,如果沒有參數就打印一句話。
    需求:
    prtMax();
    prtMax(1);
    prtMax(1,2);
    prtMax(1,2,3);
    ......
    prtMax(1,2,3...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

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

     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

    好了,無論多少個參數都可以了
    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);

    posted on 2006-11-09 16:21 dreamstone 閱讀(1495) 評論(0)  編輯  收藏 所屬分類: jdk相關

    主站蜘蛛池模板: 亚洲精品不卡视频| 国产精品亚洲A∨天堂不卡| 亚洲人成网站在线观看播放青青| 国产精品福利在线观看免费不卡| 亚洲成片观看四虎永久| 久久久久亚洲AV无码去区首| 亚洲夂夂婷婷色拍WW47| 特级做A爰片毛片免费69 | 男女交性无遮挡免费视频| 日本人的色道www免费一区| 亚洲精品国产成人片| 中国一级特黄的片子免费 | 成人免费无码大片a毛片| 亚洲a级片在线观看| 国产一精品一AV一免费孕妇| 中文字幕在线观看亚洲日韩| 午夜免费不卡毛片完整版| 亚洲aⅴ天堂av天堂无码麻豆| 四虎永久免费观看| 中文字幕手机在线免费看电影| 久久亚洲综合色一区二区三区| 一级毛片免费不卡在线| 中文字幕亚洲电影| 美女视频黄a视频全免费网站色窝| 亚洲avav天堂av在线不卡| 成人在线免费看片| 久久精品国产亚洲香蕉| 59pao成国产成视频永久免费 | 亚洲图片一区二区| 无码一区二区三区AV免费| 精品免费AV一区二区三区| 免费在线看黄的网站| 亚洲精品成人久久| 日本免费一区二区三区最新| 国产特黄特色的大片观看免费视频| 亚洲国产成人久久综合一| 成人免费视频试看120秒| 中文字幕在线免费播放| 亚洲制服丝袜在线播放| 亚洲国产日韩在线观频| 18禁美女黄网站色大片免费观看|