Java加強

 jdk1.5的新特性
1.靜態導入: for example:import static java.lang.Math.*;
  System.out.println(max(3,4);
            這樣就可以直接把Math這個類中的靜態方法直接導入進來,
  調用時就可以不用寫類名了更加方便

2.可變參數:for example: public static int add(int a, int ...args){
   int sum = a;
   for(int =0; i<args.length;i++){
   sum += args[i];
   }
   return sum;
      }
     只是最後一個參數,以數組的方式返回可變參數

3.增強的for循環 :for(類型  變量名:集合變量名){...}
   迭代變量必須在()中定義!
   集合變量可以是數組或實現了Iterable接口的集合類。
   for example: for(int arg: args){
   System.out.println(arg); 
   }

4.自動裝箱與拆箱及享元設計模式:for example:  integer i = 3;(自動裝箱)  System.out.println(i+3);(自動拆箱)
 flyweight-->(享元設計模式) integer i = 11;  integer i1 = 11;  i==i1---->true;
              integer i = 136  integer i1 = 136;  i==i1---->false;
 因爲i的值在byte之內,所以像字符串一樣存起來了裝成了一個對象,方便以後使用。

5. 枚舉
      定義枚舉:和構造方法(必須放在元素列表之後,權限必須爲private)
 public enum weekDay{
     SUN, MON, TUE,WED,THI,FRI,SAT;
     private WeekDay(){}
     private WeekDay(int Day){} 
 }

       應用枚舉:
        weekDay wd = weekDay.SUN;......取得相應的枚舉對象。很方便的
 weekDay wd = weekDay.valueof("SUN");將字符串轉成相應的枚舉對象;
 weekDay[] arr = weekDay.value();還可以將枚舉中的各個對象放在一個數組中,方便迭代的取出,可以使用加強的for循環;
 
 實現有抽象方法的枚舉: 每個對象後面必須要加上{},這是一種接口式的寫法;實現抽象方法。構造方法如果有參數則對象必須要加(args)這個可以想到。下面所示:
 
 public enum TrafficLamp{
  RED(30){
   public TrafficLamp nextLamp(){
   return GREEN 
   }
  },
  GREEN(45){
   .......
  },
  YELLOW(5){
   .......
  };
  public abstract TrafficLamp nextLamp();
  private int time;
  private TrafficLamp(int time){this.time = time}
  }
 
 枚舉只有一個成員時,可以作爲單例模式使用。(重點)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章