這星期過得有一點迷茫,又有新的工具加入,使用準則短短的就敘述完畢了,困難的是我不知道什麼時候要使用它!不意外的類別可以鑲嵌在類別之間而產生了內部類別,方便管理,過去也在一些coding練習的網站中不時有看到Lambda表示式,一直視之為譁眾取巧的旁門左道,沒想到其實是增加效能的實用方法。原本平舖直敘的程式碼經過一連串的物件導向被拆得零零碎碎,隨著加強對細節的要求,不斷的在一塊塊的拼圖中迷航,增加應付突如期來的變化的擴充性。看著碎裂的程式,我到底寫到哪裡了呢?要怎麼測試,還少哪一塊呢?還在練習適應加入了物件導向的世界...
public class Gambling {
Dice a;
Dice b;
public Gambling(int n){
a = new Dice(n);
b = new Dice(n)
}
private class Dice { //內部類別
int[] dices;
public Dice(int n){
dices = new int[n];
}
public int sum(){...}
}
}
public class Gambling {
...
private interface Compare{
int diff(Dice a, Dice b);
}
Compare bigger = new Compare(){ // 匿名內部類別
@Override
public int diff(Dice a, Dice b{
return a.sum() - b.sum();
}
}
private interface Compare{ //只有一個抽象方法的介面
int diff(Dice a, Dice b);
}
Compare bigger = new Compare(){ //匿名內部類別
@Override
public int diff(Dice a, Dice b {
return a.sum() - b.sum();
}
};
Compare bigger2 = (a,b) -> {a.sum()-b.sum()}; //lambda