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}
}
枚舉只有一個成員時,可以作爲單例模式使用。(重點)