ホームページ > バックエンド開発 > PHPチュートリアル > PHPを暗記しながら学ぶ~(13) オブジェクト指向プログラミング3

PHPを暗記しながら学ぶ~(13) オブジェクト指向プログラミング3

WBOY
リリース: 2016-08-08 09:32:29
オリジナル
843 人が閲覧しました

2.3 メンバーメソッド(関数)

メンバーメソッドは、このクラスの特定の機能、またはこのクラスができることを具体的に実行するものであると理解しています。これはクラス外の関数と何ら変わりはなく、クラス内で宣言されるだけです。使用する場合はインスタンスのクラスオブジェクトを使用して呼び出す必要があります。

同様に、メンバーメソッドも、プライベート、プロテクト、パブリックの権限修飾子によって変更できます。修飾子を使用して変更すると、その使用権限はメンバー属性の使用権限と同じになります。使用許可修飾子が表示されない場合は、デフォルトで public になります。一般に、クラス内のプライベート プロパティを操作するためのオブジェクト呼び出しを容易にするために、メンバー メソッドは public として宣言されます。

ここでは具体的な例は出しません。

2.4 最後のキーワード

this、static、constの3つのキーワードについてはすでに触れました。 Final キーワードもよく使われます。

キーワードfinalで変更されたクラスとメソッドが「最終クラスとメソッド」です。つまり、final によって変更されたクラスは継承できず、final によって変更されたメソッドはオーバーライドできず、final によって変更されたプロパティは変更できません。

最後のキーワードは、class キーワードと function キーワードの前に記述されます。

最終クラス MyClass{

//…

}

最終関数 MyFunction(){

//…

}

3. クラスの継承

3.1 クラスの継承

親のプロパティを継承できるのと同じように、クラスも継承できます。クラス継承を使用した後、継承されたクラスは親クラスまたは基本クラスと呼ばれ、継承されたクラスはサブクラスまたは派生クラスと呼ばれます。サブクラスは、親クラスのすべてのプロパティとメソッドを継承でき、必要に応じて、親クラスで最終化されていないメソッドをオーバーライドできます。クラスの継承では :extends キーワードを使用します。ただし、PHP は単一継承であることに注意してください。つまり、クラスは 1 つのクラスのみを継承でき、同時に複数のクラスを継承できません。これは C++ とは異なります。

なぜクラス継承を使用する必要があるのでしょうか?

私が理解しているのは、同じカテゴリに属し、共通の属性やメソッドを持つものもありますが、それら自体は新しい属性やメソッドを持っているので、それを使用するたびに同じことを書くのであれば、コードは完全に不要ですなので、共通のものを基本クラスに入れて、異なるものを分離してから、基本クラスを継承することで、多くの作業を減らすことができます。非常に単純な例を挙げると、ワシとトラはどちらも目や口などの器官を持ち、食べることができます。これが両方の共通点ですが、ワシは飛ぶことができ、トラは走ることができます。これが違いです。次に、動物のクラス、クラスを宣言できます Animal{} は同じものをここに置き、異なるものはこれを継承して新しいメソッドを追加します。もちろん、継承せずに別々に書くこともできますが、ここでは特定の 2 つの動物を引用しただけですが、複数ある場合でも、それらに共通するものがある必要はありません。別の例として、私が最近調べた zend フレームワークでは、多くのテーブル モデルを宣言する必要があります。これらはすべて zend_Db_Table クラスを継承しており、そのメソッドの多くは自分で書き直す必要があります。第二に、それは不要であるため、継承は依然として非常に重要です。

class Animal{
	protected $eyes;
	protected $mouth;
	//...
	public function eat(){
		//...
	}
}
class Tiger extends Animal{
	public function run(){
		//...
	}
}
class Eagle extends Animal{
	public function fly(){
		//...
	}
}
ログイン後にコピー
このメソッドがサブクラスで宣言されている唯一のメソッドであるとは考えないでください。実際には、親クラスにすべてのメソッドと属性があります。また、プライベートに宣言されていないプロパティとメソッドを使用することもできます。

3.2 抽象クラス

抽象クラスはインスタンス化できないクラスです。つまり、抽象クラスを宣言すると、後でこのクラスの新しいオブジェクトを作成できなくなります。他のクラスの親クラスとしてのみ使用できます。抽象キーワードを使用して宣言します:

abstract class MyClass{
//...
}
ログイン後にコピー
抽象クラスには少なくとも 1 つの抽象メソッドが含まれており、抽象メソッドも次のような抽象キーワードを使用して宣言されます:

abstract function FunctionName(各种参数);
ログイン後にコピー
抽象メソッドの後には次の文字が続く必要があります。 「;」。抽象メソッドは抽象クラスに実装できません。つまり、関数本体はなく、宣言のみが存在します。その機能はサブクラスでのみ実現できます。

ここで注意してください: 抽象クラスには、必ずしも抽象メソッドである必要はなく、通常のメソッドを含めることができますが、少なくとも 1 つの抽象メソッドを含める必要があります。

この時点で、オブジェクト指向は基本的に完成します。インターフェースの使用もありますので、必要に応じて書きます。次の記事では、MySql データベースの操作を書き始めます。

以上、暗記しながらPHPを学ぶ - (13) オブジェクト指向プログラミング3 について、内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート