ホームページ >バックエンド開発 >PHPチュートリアル >phpオブジェクト指向_encapsulation_PHPチュートリアルの詳細説明
以下では、例とチュートリアルを使用して、PHP のオブジェクト指向とカプセル化、およびさまざまなカプセル化の宣言について説明します。
第7章(5) オブジェクト指向_カプセル化の詳細説明
以下では、例とチュートリアルを使用して、PHP のオブジェクト指向とカプセル化、およびさまざまなカプセル化の宣言について説明します。
カプセル化: オブジェクト内のプロパティやメソッドをオブジェクト内でカプセル化することです。それらはオブジェクト内で使用したりアクセスしたりできますが、カプセル化されたメンバーはオブジェクトの外や他のオブジェクトで使用することはできません。
カプセル化に使用されるキーワード: private
カプセル化の意味:
1. オブジェクトのすべてのプロパティとメソッドを組み合わせて、分割不可能な独立した単位 (オブジェクト) を形成します。
2. 情報の隠蔽、つまり、内部の詳細を可能な限り隠し、境界を形成し(または外部との障壁を形成し)、外部と関係できるように限られた外部インターフェイスのみを保持します。
第7章(6) オブジェクト指向の詳しい解説_カプセル化によく使われる4つの手法
関数に「__」が付いたメソッドは、ある瞬間に自動的に呼び出されるメソッドです
__get (属性の名前) は、プライベート属性を直接呼び出すときに __get メソッドを呼び出します。
__set(1.属性名 2.属性値) プライベート属性に直接値を代入する場合は__setメソッドを呼び出します。
__isset (属性名) は、オブジェクト内のプライベート属性が存在するかどうかを判断するときに __isset メソッドを呼び出します。
__unset (属性名) は、オブジェクト内のプライベート属性を削除するときに __unset メソッドを呼び出します。
第7章(7) オブジェクト指向_継承の詳細説明
クラスの継承: 継承は元のクラスの拡張です。
新しく拡張されたサブクラス: 1.クラス 2.元の親クラス名 3.継承キーワードを拡張 4.新しいサブクラス名。
クラスの継承とは、プライベート属性とメソッドを除く、親クラスのすべての内容をサブクラスに継承することを意味します。
第7章(8) オブジェクト指向の詳細解説_メソッドの網羅性とアクセス
クラス メソッドのオーバーロード: メソッド名は親クラスのメソッド名と同じである必要があります。親クラスのメソッドの内容全体を呼び出す場合は、サブクラス メソッドでキーワード pr]arent:: を使用できます。その部分だけを呼び出す場合は書き換えてください。
アクセスタイプ:
private private はこのクラス内でのみアクセスできます。
protected protected には、このクラスとサブクラスでのみアクセスできます。
public public には制限がなく、このクラス、サブクラス、および外部でアクセスできます。
第7章(9) オブジェクト指向の詳しい解説_よく使われるfinal、static、constキーワード
Final: クラスとメソッドの定義にのみ使用できます。
機能:finalを使用して定義されたクラスは継承できません。
Final を使用して定義されたメソッドは、オーバーロードによってオーバーライドできません。
static: プロパティとメソッドを静的として定義します。
static はプロパティとメソッドを変更できます。
非静的メンバーは、静的を使用して宣言されたメソッドでは使用できません。
static の機能は、クラス内で 1 回宣言するだけで済むことです。このクラスによって生成されるすべてのオブジェクトには、静的に変更されたプロパティとメソッドがありますが、メモリ内で繰り返し使用されることがないため、効果的にメモリを節約できます。
静的に定義されたプロパティまたはメソッドにアクセスするには、classname::define プロパティまたはメソッドを使用するか、felf::define プロパティまたはメソッドを使用してアクセスします。
オブジェクトを使用して直接アクセスすることはできません。
const の機能は、メンバー属性をクラス内の定数として定義することです。
const は属性のみを変更できます。
const は宣言時にのみ初期化できます。
$.
を追加せずに属性を宣言するには、const を使用します。
const で定義された属性にアクセスするには、クラス名::定義された属性を使用してアクセスし、オブジェクトに直接アクセスすることはできません。
http://www.bkjia.com/PHPjc/630478.html