2008年11月11日火曜日

 

PHP再入門- オブジェクト指向 その2

アクセサメソッド - クラスのメンバ変数にアクセスするset(値を与える)とget(値を得る)の対 - について。
クラスは、アクセサメソッドを使ってメンバ変数にアクセスするよう設計する。

PHPなオブジェクト指向入門 vol.2
-
/* 足し算するCalculateクラス */

class  Calculate {
  var $a;
  var $b;
  var $sum;
  var $error;

  // コンストラクタ - 初期化
  function __construct() {
    $this->a = 0;
    $this->b = 0;
    $this->sum = 0;
    $error  = array();
  }
 
  function set_a($a) {
    if (is_numeric($a)) {
      $this->a = intval($a);
    } else {
      $error[] = "$a is not Int.";
    }
  }

  function get_a() {
    return $this->a;
  }

  function set_b($b) {
    if (is_numeric($b)) {
      $this->b = intval($b);
    } else {
      $error[] = "$b is not Int.";
    }
  }

  function get_b() {
    return $this->b;
  }

  function Sum() {
    $this->sum = $this->a + $this->b;
  }

  function getSum() {
    return $this->sum;
  }

  // エラー関数
  function IsError(){
    if(count($this->error) > 0){
      return $this->error;
    }else{
      return FALSE;
    }
  }
}
  $obj = new Calcurate();
  $obj->set_a(10);
  $obj->set_a(5);
  if ($obj->IsError() == FALSE) {
    print $obj->getSum();
  } else {
    print_r($obj->error);
  }

setとかgetとか使ってアクセスする。値のバリデータ出来て良い。
$sum以外はprivateにして外からアクセスできないようにした方がいいかも。
間違ってたら教えてください。ごめんなさい。

ラベル: ,


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google