018 オブジェクト指向の深化(インターフェイスと抽象クラスの利用) 005 問題

問題

  • ジオメトリック図形の描画プログラムを設計してください。
    • Drawable(インターフェイス)
      • メソッド: draw()(図形を描画する)
    • Circle(円)
      • メンバー変数: 中心座標、半径
    • Rectangle(長方形)
      • メンバー変数: 左上の座標、幅、高さ
    • DrawingBoard(描画ボード)
      • メソッド: addShape(Drawable shape)(図形を描画ボードに追加する)

ヒント

  1. Drawable インターフェイス:
    • Drawable インターフェイスは、draw() メソッドを定義します。
    • このインターフェイスを実装するクラスは、draw メソッドによって自身を描画できるようになります。
  2. Circle クラス:
    • Circle クラスは Drawable インターフェイスを実装します。
    • メンバー変数として中心座標と半径を持ちます。
    • draw メソッドを実装して円を描画する処理を提供します。
  3. Rectangle クラス:
    • Rectangle クラスは Drawable インターフェイスを実装します。
    • メンバー変数として左上の座標、幅、高さを持ちます。
    • draw メソッドを実装して長方形を描画する処理を提供します。
  4. DrawingBoard クラス:
    • DrawingBoard クラスは、描画ボード上に図形を管理するクラスです。
    • addShape メソッドを提供して、描画ボードに図形を追加できるようにします。
    • 描画ボード内で管理される各図形は Drawable インターフェイスを実装している必要があります。

この設計により、Circle クラスと Rectangle クラスが共通の描画機能を提供し、それらを DrawingBoard クラスが管理できるようになります。新しいジオメトリック図形を追加する場合は、Drawable インターフェイスを実装するだけで描画ボードに追加できます。

解答例

「018 オブジェクト指向の深化」問題集リスト