キッチンでプログラミング(12)
今回は前回より少し簡単な継承について紹介したいと思います。
【親クラスと子のクラスを作ろう(その2)】
ビットさんが言いました。「ちょっとむずかしかったみたいだから、もっと簡単なのにするわね。ちょっとリッチなローストビーフサラダを作ってみましょう。」
~親クラス~
<名前>
サラダを作るロボット
<属性>
レタス
ミニトマト
コーン
ドレッシング ← ごまドレッシング
<操作>
下ごしらえ(){
this.レタスを3cm角にちぎる。
this.ミニトマトのへたをとる。
}
もりつける(){
お皿にthis.レタスをしく。
this.レタスの上にthis.コーンをのせる。
this.レタスの上にthis.ミニトマトをのせる。
}
味付けする(){
お皿の上にthis.ドレッシングを大さじ1かける。
}
~~~~~~~~~~
~子クラス~
<名前>
ローストビーフサラダを作るロボット
<親クラスの名前>
サラダを作るロボット
<属性>
ローストビーフ
<操作>
のせる(){
this.ローストビーフをのせる。
}
~~~~~~~~~~
~作り方~
1.料理ロボA ← 『ローストビーフサラダを作るロボット』インスタンスを新しく生み出す。
2.料理ロボA.下ごしらえ()
3.料理ロボA.もりつける()
4.料理ロボA.のせる()
5.料理ロボA.味付けする()
~~~~~~~~~~
ビットさんが言いました。「子クラスには親クラスにないものだけを書けばいいのよ。」
はじめ君が言いました。「これならわかるよ。」
ビットさんが言いました。「それじゃあスモークサーモンサラダの作り方を書いてみてくれるかな。」
~子クラス~
<名前>
スモークサーモンサラダを作るロボット
<親クラスの名前>
サラダを作るロボット
<属性>
スモークサーモン
<操作>
のせる(){
this.スモークサーモンをのせる。
}
~~~~~~~~~~
~作り方~
1.料理ロボA ← 『スモークサーモンサラダを作るロボット』インスタンスを新しく生み出す。
2.料理ロボA.下ごしらえ()
3.料理ロボA.もりつける()
4.料理ロボA.のせる()
5.料理ロボA.味付けする()
~~~~~~~~~~
「どんなもんだい。」はじめ君が言いました。
ビットさんが言いました。「前とはずいぶん違うわね。」
はじめ君が言いました。「ビットさんが最初からむずかしいことを教えようとするからだよ。」
【解説】
ローストビーフサラダを作るプログラムをJavaで書くと次のようになります。
public class MakeSalad{
/* 属性 */
// レタス
// ミニトマト
// コーン
// ドレッシング
/* 操作(メソッド) */
public void shitagoshirae(){
// this.レタスを3cm角にちぎる
// this.ミニトマトのへたをとる
}
public void moritukeru(){
// お皿の上にthis.レタスをしく
// this.レタスの上にthis.コーンをのせる
// this.レタスの上にthis.ミニトマトをのせる
}
public void ajitukesuru(){
// お皿の上にthis.ドレッシングを大さじ1のせる
}
}
pnblic class MakeRoastBeefSalad extends MakeSalad{
/* 属性 */
// ローストビーフ
/* 操作(メソッド) */
public void noseru(){
// this.ローストビーフをのせる
}
public class Main{
public static void main(String[] args){
MakeRoastBeefSalad mr = new MakeRoastBeefSalad();
mr.shitagoshirae();
mr.moritukeru();
mr.noseru();
mr.ajitukesuru();
System.out.println("できあがり");
}
}