Javaプログラミング 第9回 2005/11/17
- 第8回の演習「社長命令起立」を完成させる。
- 追加課題作成する。
社員クラス
社員クラスはインターフェースにする。社員が持つべき動作の名前だけを規定する。
(1)〜(3)に何を当てはめればよいか考えなさい。
public (1) Shain { /** 起立する */ public (2) void (3) }
平社員クラス
このクラスは社員インターフェースを実装(実現)するクラスで、実際にどんな風に起立するかを記述する。
つぎの(1)〜(4)に何を当てはめればよいか考えなさい。
public (1) Hira (2) Shain { /** 平社員の起立の動作 */ public void (3) { System.out.println(" (4) "); } }
※他の担当者、主任、部長のクラスについては上記を参考に作成する。
社長クラス
このクラスでそれぞれの社員クラスのインスタンスを生成し、それぞれに起立するように指示する。
次の(1)〜(8)に当てはめる適切な語を考えなさい。
public (1) Shacho { public (2) void (3) { // それぞれの社員のインスタンスを作る Shain hira = new (4); // 平社員 Shain tanto = new (5); // 担当 Shain shunin = new (6); // 主任 Shain bucho = new (7); // 部長 // 各社員に起立するように指示 hira.(8); tanto.(8); shunin.(8); bucho.(8); } }
社員のインスタンスを配列リストでまとめる。
以前の演習などでも出てきたが、配列リストにインスタンスを入れておくとループで簡単に取り出せる。
次のリストは社員型のリストshainを作り、各社員のインスタンス(hira、tanto、shunin、bucho)を順に追加し、拡張for文で取り出し、表示するプログラムです。
Collection<Shain> shain = new ArrayList(); shain.add(hira); shain.add(tanto); shain.add(shunin); shain.add(bucho); for(Shain s : shain) { s.standup(); }
getKyuryo()メソッド
- 社員クラスでは起立のstandup()メソッドと同様に、名前だけ定義しておく。
- 引数はint型で、基本給
- 戻り値はint型で、計算した給料
- 社員クラスを実装する各クラスには、このメソッドの実装がないのでそれを追加する。
- 社長クラスで、各社員クラスのインスタンスの基本給を与え、給料を取得し、表示する。
社長クラスでは次のように使う。
int kyuryo = hira.getKyuryo(1000); System.out.println("平社員の給料は" + kyuryo + "円です。");
追加分
給料計算ができたら下記の追加分演習プログラムを作る。
課長クラスを作る
- 課長は元気に起立します。
- 給料は基本給×1+1000です。
ボーナスの計算
社員のボーナスを計算するメソッドgetBonus()を追加する。
社員 | 計算式 |
---|---|
平 | 基本給×1.5 |
担当 | 基本給×1.7 |
主任 | 基本給×2 |
課長 | 基本給×2.5 |
部長 | 基本給×3 |
名前と住所を設定する
社員に名前と住所を設定できるようにしたい、どうすればよいか。
社長から名前や住所を聞かれたとき答えられるようにする。
- 名前を聞くメソッドをgetName()
- 住所を聞くメソッドをgetAddress()
社員のインスタンスを作るときに次のように記述できるようにする。
Shain hira = new Hira("八王子 太郎", "八王子市片倉町");