Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

06 オブジェクト指向の基礎

1,976 views

Published on

Published in: Education, Technology
  • Be the first to comment

06 オブジェクト指向の基礎

  1. 1. PHP講座(6)!一歩上に行くためのオブジェクト指向この授業では、現代的なプログラミングの中心的な概念であるオブジェクト指向について学びます。PHPerとして上級者になるためには避けては通れない道です。
  2. 2. 2 オブジェクト指向とは? オブジェクト指向とは、プログラミングのための オブジェクト指向プログラミングではないルー ルールです。   ルに手続き型プログラミングがあります。   プログラムの固まりをオブジェクト(物)ととら これはみなさんがいままでやっていたプログラ え、お互いの相互作用がプログラム全体の動きに ミングで、一連の処理を順番に行っていきます。   なります。   <?php   オブジェクト //アドレスを定義   $to  =  “hoge@example.com”;   //件名を定義   オブジェクト $sub  =  “This  is  a  test”;   //本文を定義   $body  =  “Hello!”;   //メールを送信   if(mail($to,  $sub,  $body)){        echo  “メール送信成功”;   }else{   オブジェクト      echo  “メール送信失敗”;   }   オブジェクト ?>  10.4.18 (C) 株式会社破滅派
  3. 3. 3 オブジェクト指向を車に例えると…(1) オブジェクト指向はそもそも機械工学の世界から誕生しました。   あらゆるものをオブジェクト(モノ)と考えます。 オブジェクト:ハン ドル   オブジェクト:車   回すことでタイヤの 移動を便利にしてくれる乗 オブジェクト:タ 向きを変更する り物 イヤ   エンジンに伴って 回転する オブジェクト:フレーム   車に必要なオブジェクトすべて を納めることができる オブジェクト:アクセル   車が動くのは各部品(オブ 踏み込むことでエンジン を回転させる ジェクト)が相互作用によっ て動いているからです。10.4.18 (C) 株式会社破滅派
  4. 4. 4 オブジェクト指向を車に例えると…(2)オブジェクト指向においては、一つ一つのオブジェクトの機能はそのオブジェクト自身だけが知っています。外部のオブジェクトはその詳細を知らなくても利用することができます。これをオブジェクトの「隠蔽性」または「カプセル化」といいます。 自動車期間工は自動車を作ります。   しかし、エンジンは作りませんし、エン ジンがどのような仕組みで動いているか も知る必要がありません。   タイヤのゴムをどうやって確保するかも 知る必要がありません。   それでも車を完成させることができます。 大規模で複雑な物を作るのに、オブジェクト指向の知識は不可欠です。10.4.18 (C) 株式会社破滅派
  5. 5. 5 オブジェクトを車にたとえると.. クラスはオブジェクトを作るための設計図。   設計図からオブジェクトを作ることを「インスタンス化」といいます。   インスタンスとは、「実体」という意味です。 インスタンス:$MyCar クラス:Car <?php   new演算子でCarクラスの 新しいインスタンスを作成 $MyCar  =  new  Car();   し、変数$myCarという名 ?> 前をつけています。10.4.18 (C) 株式会社破滅派
  6. 6. 6 変数と関数の復習 皆さんはすでにPHPで重要な2つのもの「変数」と「関数」を学びました。 変数…値につける名前   関数…一連の処理につける名前   $hoge  =  “fuga”;   function  tenTimes($num){   $num  =  10;    return  $num  *  10;   $myArr  =  array(1,  2,  3,  4);   }   PHPにおけるオブジェクトはこの変数と関数の集合体です。   この集合体の設計図を「クラス」と呼びます。10.4.18 (C) 株式会社破滅派
  7. 7. 7 設計図(クラス)の書き方 クラスにはプロパティ(部品)とメソッド(機能)があります。   プロパティは変数で、メソッドは関数です。 <?php   class  Car{    //プロパティ    var  $handle;    var  $break;    var  $accel;    var  $engine;    //メソッド   クラス:Car  function  go(){}   部品:ブレーキ、ハンドル、  function  stop(){}   アクセル、エンジン    function  turn($direction){}   機能:進む、止まる、曲がる、  function  engine_start(){}   バックする、エンジンを }   かける ?>10.4.18 (C) 株式会社破滅派
  8. 8. 8 クラスの使い方 クラスは自分で作った物であったり、他人が作ったものだったりします。   通常は1クラス1ファイルとし、読み込んで使います。   <?php        //クラスファイルを読み込む        //通常は1つのクラスで1つのファイルに分けます   index.php Car.php      require_once(“./Car.php”);        //インスタンス化して使えるようにする   index.phpはCar.phpを読み込      $myCar  =  new  Car();   んでそれを利用します。   この場合、Carクラスの機能      //矢印演算子でプロパティを呼び出す   を利用するだけなので、何か      echo  $myCar-­‐>price;  //1,000,000     エラーが起きた場合は index.phpに不具合があると      //メソッドは括弧を付ける   考えることができます。        $myCar-­‐>back();  //バックします   こうしてプログラムの隠蔽性 ?> が保たれます。10.4.18 (C) 株式会社破滅派
  9. 9. 9 オブジェクト指向はどこまで理解する必要があるか? オブジェクト指向は抽象的な概念であり、理解が難しいです。   単純なメールフォームならオブジェクト指向でなくても作れます。   しかし、理解しないとできないこともあります。 オブジェクト指向を理解していないとできないこと   •  WordPressやXoopsなどのカスタマイズ   •  CakePHPなどのフレームワークの利用   •  複雑で高度なシステムの作成   会社の経理部で働くか?   公認会計士になるか?   …という違いに似ています10.4.18 (C) 株式会社破滅派

×