ホームページ  >  記事  >  バックエンド開発  >  PHP学習(3):PHPオブジェクト指向の概念

PHP学習(3):PHPオブジェクト指向の概念

WBOY
WBOYオリジナル
2016-06-23 14:29:231048ブラウズ

PHP OO について詳しく知るには、PHP マニュアルを読むのが最善です。誰もが知っている部分には触れず、忘れやすい部分だけ書きます。

キーワードと特殊変数 new、class、extends。この3つは誰もが知っています。 ::、スコープ解決演算子 (Paamayim Nekudotayim とも呼ばれます)、またはより単純にはコロンのペアを使用して、静的メンバー、メソッド、および定数にアクセスできます。クラス内のメンバーやメソッドをオーバーライドするためにも使用できます。親と自分。 parent は、派生クラスが extends 宣言で参照する基本クラスの名前を参照します。これを行うと、複数の場所で基本クラス名を使用することがなくなります。 $this 疑似変数。 $this は現在のインスタンスを指します。 $this は、必ずしもメソッドが属するオブジェクトであるとは限りません。クラス A 内のコードがクラス B の静的メソッドを呼び出すことがあります。参考例: http://www.php.net/manual/zh/ language.oop5.basic.php 静的キーワード。クラス メンバーまたはメソッドを静的として宣言すると、クラスをインスタンス化せずに直接アクセスできます。ただし、静的メソッドを除き、オブジェクトを介して静的メンバーにアクセスすることはできません。静的メソッドでは、$this は使用されません。代わりに self:: を使用してください。最後のキーワード。これはクラスと関数で使用できるため、クラスを継承したりメソッドをオーバーライドしたりすることはできません。 プロパティ

初期化できますが、初期化された値は定数でなければなりません。定数の前に const キーワードを使用します。定数の値は固定値である必要があり、変数、クラス属性、またはその他の操作 (関数呼び出しなど) の結果にすることはできません。

コンストラクターとデストラクター

これら 2 つの関数はいずれも、Java のコンストラクター メカニズムとは異なり、基本クラスの応答関数を密かに呼び出すことはありません。この効果を実現するには、実行を表示する必要があります。デストラクターでは例外をスローできません。

抽象クラス

抽象として宣言されたクラスメソッドには具体的な実装を含めることはできませんが、通常のメソッド(非抽象、メソッド本体を持つ)を含めることはできます。抽象クラスはインスタンス化できません。最初に継承してから、そのサブクラスをインスタンス化する必要があります。さらに、サブクラスのアクセス制御は、抽象クラスのアクセス制御と同じか、より緩和する必要があります。抽象クラスには、少なくとも 1 つの抽象メソッドが含まれます。

インターフェイス インターフェイスを使用すると、クラスが実装する必要があるメソッドを指定できますが、これらのメソッドの特定の内容を定義する必要はありません。 定義されたすべてのメソッドはパブリックである必要があり、メソッドが空の場合は定数を定義できますが、「他の人を愛することを受け入れることができ、私を愛することは私のすべてを意味します」という属性はありません。インターフェースの実装(実装)は実装する必要があります。すべてのメソッドを実装でき、複数のインターフェイスを実装できます (メソッドに同じ名前を付けることはできないことに注意してください)。 インターフェイスは他のインターフェイスによって継承 (拡張) できます。 抽象クラスとインターフェイス (更新中) の違い 抽象クラスは、「現状」のシナリオにより適しており、クラスを設計する際にはより理にかなっています。 インターフェイスは、実装する必要があるメソッドを含むテンプレートおよび仕様に相当します。属性はなく動作のみであるため、インターフェイスは「何をするか」のシナリオにより適しています。 抽象クラスに対するインターフェイスの利点は、クラスが複数のインターフェイスを実装できることです。インターフェイスに対する抽象クラスの利点は、属性と具象メソッドを含めることができ、抽象として宣言されたクラス メソッドのみを実装する必要があることです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。