プログラミング|オブジェクト|プロジェクト
PHP のオブジェクト指向プログラミング: 大規模 PHP プロジェクトの開発方法 (2)
著者: Luis Argerich 翻訳者: limodou
「Another」クラスのオブジェクトには、親クラスのデータ メンバーとメソッドがすべて含まれるようになりました (何か)、独自のデータ コンポーネントとメソッドも追加されました。
$obj2=new Something;
$obj2->setY(7); を使用できます
PHP はまだ多重継承をサポートしていません。または、2 つ以上のクラスが新しいクラスを派生します。
派生クラスではメソッドを再定義できますが、「Another」クラスでgetXメソッドを再定義すると、「Something」ではgetXメソッドが使えなくなります。派生クラスで基本クラスと同じ名前のデータ メンバーを宣言した場合、それを処理するときに
基本クラスのデータ メンバーが「隠蔽」されます。
クラス内でコンストラクターを定義できます。コンストラクターは、クラス名と同じ名前のメソッドです。たとえば、クラスのオブジェクトを作成するときに呼び出されます。 --- --------------------------------------------------- --- --------
class Something {
var $x;
function Something($y) {
$this->x=$y;
関数 setX ($v) {
$this->x=$v;
}
function getX() {
return $this->x
}
}
?>--- -------------------------------------------------- -- -----------------------
それで、次のようにオブジェクトを作成できます:
$obj=new Something(6);
コンストラクターは次のようになります。データ変数 x に 6 を自動的に代入します。コンストラクターとメソッドは通常の PHP 関数であるため、デフォルトのパラメーターを使用できます。
function Something($x="3",$y="5")
次に:
$obj=new Something() // x=3 and y=5
$obj=new Something(8) ); // x=8 と y=5
$obj=new Something(8,9); // x=8 と y=9
デフォルトのパラメータは C++ を使用するため、Y の値を無視することはできません。 X にデフォルトのパラメータを指定すると、パラメータは左から右に割り当てられます。渡されたパラメータが必要なパラメータよりも小さい場合は、デフォルトのパラメータが使用されます。
派生クラスのオブジェクトが作成されると、そのコンストラクターのみが呼び出され、親クラスのコンストラクターは呼び出されません。基底クラスのコンストラクターを呼び出したい場合は、そのコンストラクター内で呼び出す必要があります。派生クラスの呼び出し。これが可能なのは、親クラスのすべてのメソッドが派生クラスで使用できるためです。
------------------------------------------------ --------------------------------
function Another() {
$this-> y=5;
$this->Something();
//基本クラスのコンストラクターを表示します
?>--------------------- ----- -------------------------------------- ----- ----------
OOPの優れたメカニズムは、抽象クラスを使用することです。抽象クラスはインスタンス化できず、派生クラスへのインターフェイスのみを提供できます。設計者は多くの場合、抽象クラスを使用してプログラマに基本クラスからの派生を強制し、新しいクラスに必要な機能が確実に含まれるようにします。 PHP には標準メソッドはありませんが、
この機能が必要な場合は、基本クラスを定義し、そのコンストラクターの後に「die」呼び出しを追加して、基本クラスがインスタンス化できないようにすることができます。各メソッド (インターフェイス) の後に「die」ステートメントが追加されるようになりました。そのため、プログラマが派生クラスのメソッドをオーバーライドしないと、エラーが発生します。また、PHP は型指定されていないため、オブジェクトが基本クラスからの派生クラスであることを確認してから、クラスの ID を理解する (ある種の識別 ID を返す) メソッドを基本クラスに追加し、Check でメソッドを追加する必要がある場合があります。
オブジェクトパラメータを受け取ったときのこの値。もちろん、邪悪なプログラマが派生クラスでこのメソッドをオーバーライドした場合、このメソッドは機能しませんが、一般的に
問題は邪悪なプログラマではなく、怠惰なプログラマに見つかる可能性が高くなります。
もちろん、基本クラスをプログラマに見えないようにして、インターフェイスを出力するだけで仕事を実行できるのは素晴らしいことです。
PHPにはデストラクターがありません。
PHPBuilder.comより転載