<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相關

    主站蜘蛛池模板: 亚洲av无码乱码国产精品fc2| 亚洲不卡AV影片在线播放| 亚洲产国偷V产偷V自拍色戒| 黄页网址大全免费观看12网站| 女人18毛片免费观看| 亚洲成年网站在线观看| 24小时免费直播在线观看| 亚洲人成电影网站免费| 亚洲毛片免费观看| 亚洲日本在线免费观看| 亚洲春色另类小说| 日韩欧美一区二区三区免费观看 | 亚洲三级高清免费| 狠狠色伊人亚洲综合网站色| 很黄很黄的网站免费的| 亚洲免费人成视频观看| 日韩一区二区a片免费观看| 亚洲国产精品日韩av不卡在线| www.亚洲精品| a毛片在线还看免费网站| 亚洲AV第一页国产精品| 一级人做人爰a全过程免费视频 | 一级毛片免费毛片毛片| 亚洲日韩激情无码一区| 5555在线播放免费播放| 中文字幕在线观看亚洲视频| 日本免费人成网ww555在线| 久久亚洲AV成人出白浆无码国产| 三级网站免费观看| 久久久久亚洲av无码专区 | 久久99亚洲综合精品首页| 久久99久久成人免费播放| 国产精品久久久久影院免费| 国产精品小视频免费无限app| 亚洲狠狠综合久久| 日本高清免费不卡视频| 91视频精品全国免费观看| 自拍日韩亚洲一区在线| 亚洲最大av无码网址| 曰曰鲁夜夜免费播放视频| 一级毛片**免费看试看20分钟|