這個也滿簡單,一個類別的值或分法都與其他類別無關,具有獨立性,就稱為獨立類別,如下的例子:
薪水類別:
/* 薪水 */
// 編寫人:Lancelot Cheng
public class Salery {
public double basic = 10000.0; // 基本薪資
public double extraUnit = 999.0; // 獎金基本單位
}
上面是薪水規定的類別,基本薪水 10000 元,額外獎金單位是 999 元。
那麼一個類別的值或方法與其他類別相關,就稱為相依類別。前面說過繼承的概念,下面三個類別各別是人類、公務人員、圓桌武士,設計邏輯是公務人員屬於人類,所以繼承人類;而圓桌武士屬於公務人員,所以繼承公務人員。
人類類別:
/* 人類 */
// 編寫人:Lancelot Cheng
public class Human {
public String name, brithday, blood;
// 建構子
public Human(String name, String brithday, String blood){
this.name = name;
this.brithday = brithday;
this. blood =blood;
}
}
公務人員類別:
/* 公務人員 */
// 編寫人:Lancelot Cheng
public class GoverEmployee extends Human {
public GoverEmployee(String name, String brithday, String blood) {
super(name, brithday, blood);
}
public double getBasic(Salery sa){
return sa.basic;
}
public double getExtraUnit(Salery sa, double score) {
return sa.extraUnit*score;
}
}
大中土 在公務人員類別中,設定了接收薪水物件的方法與計算額外獎金的方法,它的方法結果和薪水類別的成員變數有關,這便是相依。
圓桌武士類別:
/* 圓桌武士 */
// 編寫人:Lancelot Cheng
public class KOTRT extends GoverEmployee {
private String title, weapon;
private double score;
public KOTRT(String name, String brithday, String blood, String tt, String ww, double sco) {
super(name, brithday, blood);
title = tt;
weapon = ww;
score = sco;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
接下來是主程式,新增政府給薪物件和藍斯洛特圓桌武士物件,並顯示出他的薪水:
/* 主程式 */
// 編寫人:Lancelot Cheng
public class Main {
public static void main(String[] args) {
Salery goverSal = new Salery(); // 創造政府薪水物件 gover
KOTRT lancelot = new KOTRT("藍斯洛特", "1001", "B",
"騎士之花", "阿隆黛特", 120);
System.out.println( "藍斯洛特的基本薪資與額外加給獎金:" + lancelot.getBasic(goverSal) +
";" + lancelot.getExtraUnit(goverSal, lancelot.getScore()));
}
}
結果:
藍斯洛特的基本薪資與額外加給獎金:10000.0;119880.0
Process finished with exit code 0
說明:因為藍斯洛特圓桌武士是公務人員,所以薪水按照公務人員的方法給定。
寫這些文章也許可以賺一些廣告費,但目前為止不知道我不合規定的地方是什麼,所以只好各位面都試看看了。未來會減少曾寫過的程式碼,然後程式碼會試著更精簡,讓讀者更容易看懂。
忽然間發現自己學到的東西己經可以重現以前文字遊戲的回合制戰鬥了,如果能搭配圖形遊戲性會更好,雖然能做出來的東西會很粗糙,不過就當個練習吧,之後會寫出來。
沒有留言:
張貼留言