LoginSignup
3
3

More than 5 years have passed since last update.

オブジェクト指向、新たな言語を身につけるための問題演習

Last updated at Posted at 2018-04-23

図形の面積を求めるプログラムをオブジェクト指向で作成する

目的

  • オブジェクト指向
  • カプセル化
  • 継承
  • オーバーライド
  • ポリモーフィズム

の体験と理解、また 新たに学ぶ言語の文法を手に覚えさせる

演習の流れ

  • Figure classの実装 [オブジェクト指向・クラスの作成]
  • 子クラスから2つ選んで実装 [継承、オーバーライド]
  • 作成した子クラスをいくつかインスタンス化
  • $figres[]に格納
  • foreachを用いて各メソッド(setを除く)を実行する [ポリモーフィズム]

クラス構造

親クラス

Figure class

setPoints method

必要な座標を登録する

showPoints method

持っている座標の一覧を表示する

getArea method

図形の面積を数値でreturn

getName method

図形の名前(ex. circle, triangle...)をreturn

子クラス

Rectangle class(長方形)

メンバに2つの座標を持つ

Square class(正方形)

メンバに2つの座標を持つ

Triangle class

メンバに3つの座標を持つ

Circle class

メンバに1つの座標と、半径を持つ

Trapezoid class(台形)

メンバに4つの座標を持つ

出来たらやってみよう項目

  • Figure classを抽象クラスにする
  • 各メンバはprivateにする [カプセル化]
  • 座標のメンバはPoint classを作成し、各クラスで用いる
  • すべての子クラスを実装
  • 座標が図形を正しく表せるかのチェック(直線になってしまう、正方形じゃない、等)
  • Square classはRectangle classを継承させる(Square class中身がほとんどなくなるはず)
  • setPoints methodをオーバーライドしない
  • getPoints methodをオーバーライドしない
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3