図形の面積を求めるプログラムをオブジェクト指向で作成する
目的
- オブジェクト指向
- カプセル化
- 継承
- オーバーライド
- ポリモーフィズム
の体験と理解、また 新たに学ぶ言語の文法を手に覚えさせる
演習の流れ
- 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をオーバーライドしない