見出し画像

キッチンでプログラミング(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("できあがり");

  }

}


この記事が気に入ったらサポートをしてみませんか?