アクセサメソッド

カプセル化の典型として、プロパティの隠蔽と、アクセサメソッドに触れてみます。

まずは、三角形の面積を求めるTriangleFigureクラスを作ってください。(ファイルも忘れずに)

次にこれを実行するときに、下記のように負の数や文字列を与えて見ましょう。

実際に使うためにはこのような結果を出されるとこまってしまいますね。
このように必要とする値がわたったときにチェックする場合、いろいろな方法が考えられると思いますが、カプセル化を行い、アクセス制限をうまく利用する方法がクラス~オブジェクト指向では定番となります。 では実際に行ってみましょう。
まずは、プロパティをprvate権限に変更します。

コンストラクタとメソッドの間に下記のように、各プロパティのゲッタ、セッタメソッドを準備します。

各セッタメソッドで数字で且つ正の数であることのチェックをしています。

  • ゲッタメソッド(get****(){}) プロパティ値を取得するメソッド
  • セッタメソッド(set****(){}) プロパティ値に設定するメソッド

メソッド内の処理を下記のように書き換えてください。

実行時のコードを下記のように書き換えてください。

こうすることによって、プロパティを外部からは隠蔽化しておき、一旦セッタメソッドでチェックし、プロパティ値を設定。ゲッタメソッドで値を取得し、期待する値をしっかりと計算することができましたね。