タグ

クラスとオブジェクト指向に関するwogawaraのブックマーク (4)

  • PHPで多重継承する方法 - プログラマはサイコロを振らない

    PHPでは言語仕様的に多重継承が許されていません。これは、メソッド名が重複した場合の処置など、多重継承が様々な問題を引き起こしやすいからです(C++でプログラムを書くとよくわかります)。とはいえ、どうしても多重継承をしたい場合というのもあります。そこで、PHPではインタフェースを使って擬似的に多重継承ができるようになっています(Javaでも同じ)。 (このエントリーはクラス、継承、抽象クラスなどについて最低限の知識のある人を対象としています) 以下、インタフェースを用いた擬似的多重継承の方法を説明します。 ClassAとClassB まず、次のような二つのクラス、ClassAとClassBを考えます。 <?php class ClassA { private $a; public function __construct($a){ $this->a=$a; } public functio

    PHPで多重継承する方法 - プログラマはサイコロを振らない
  • PHPなオブジェクト指向入門 vol.1 - 真夜中のプログラミングTips

    PHPなオブジェクト指向 vol.0に引き続き、今回はコーディング上の素朴な疑問。なお、PHP5ユーザはオブジェクト指向派が大多数で入門レベルのことは意味がないと思われるので、プロシージャ指向の方も多いと思われるPHP4ユーザを対象としています。 ・var とか this って何だ? シンプルな構文が嬉しいPHPですが、クラスになると見慣れない var $hennsu;とか $this->hennsu といった見慣れない構文が出てきます。 肥満度を求めるプログラムを例にとってこれらをみていきたいと思います。(肥満度については肥満度の計算を参照)。 // CheckBMIクラス class CheckBMI{ var $tall; var $weight; function CheckBMI($tall, $weight){ //コンストラクタ //引数を上で宣言したメンバ変数(プロパティ)

    PHPなオブジェクト指向入門 vol.1 - 真夜中のプログラミングTips
  • PHPのinterfaceとabstractを正しく理解して使い分けたいぞー ::ハブろぐ

    interfaceとabstractの特徴と違いを捉える 今回もPHP話。(正しくないことは @ahomu に教えてもらえると助かりマス) PHP5では、interface(インターフェイスの宣言)やabstract(抽象化)が使用できます。これらの説明を読むと、一見して同じような役割を持っているように見えます。 それは両者とも、メソッドの実装を「インターフェイスを実装したクラス」や、「抽象クラスを継承したクラス」に強制的に任せる機能を持っているからです。これらの挙動は、外見上とても似ています。少なくとも自分はそこで引っかかりました。 interfaceもabstractも便利なオブジェクト指向機能ですが、使い分けができないと、もったいないです。ありがちな話だと、いつまでもabstract一辺倒で、interfaceの出番が見つからない、とか。 今回はそのへんを自分の理解を整理しつつ書き留

    PHPのinterfaceとabstractを正しく理解して使い分けたいぞー ::ハブろぐ
  • 独学PHP はじめよう、PHPでオブジェクト指向

    クラスを理解するうえで重要になってくるのがオブジェクトです。クラスとオブジェクトは似て非なるものです。オブジェクトとはクラスを元にしてつくられたコピーを指します。クラスでは「データを保持できる」という性質をもっているため、複数の処理でひとつのクラスにアクセスした場合、データの上書き(不整合)を引き起こす危険があります。そのため、処理に応じクラスのコピーを作成し、そのコピーに対してアクセスすることが考えだされました。実際に使う場合には、まずクラス体には手を加えず、オブジェクトと呼ばれるクラスのコピーを作成しそれを処理の対象としてプログラムを組んでいきます。 TOP インスタンス化 クラスのコピー(オブジェクト)を生成することを「インスタンス化」といいます。インスタンス化とは、クラスを扱うための「自分専用の領域」を確保する行為ともいえます。PHPでは、クラスのインスタンス化を次のようにnew

  • 1