ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト指向ガイド (5) Encapsulation_PHP チュートリアル
9. カプセル化
カプセル化は、オブジェクト指向プログラミングの 3 つの主要な特徴の 1 つであり、オブジェクトのプロパティとサービスを独立した同一のユニットに結合し、オブジェクトの内部の詳細を最大限に隠すことです。 2 つを含む可能性があります。 意味: 1. オブジェクトのすべての属性とすべてのサービスを結合して、分割できない独立した単位 (つまり、オブジェクト) を形成します。 2. 情報隠蔽、つまり、物体の内部詳細を可能な限り隠し、外界との境界を形成(または障壁を形成)し、外界と接続するための限られた外部インターフェースのみを保持する。
カプセル化の原理はソフトウェアに反映されています。カプセル化では、オブジェクト以外の部分がオブジェクトの内部データ
(プロパティ) に自由にアクセスできないことが必要です。これにより、外部エラーの「相互感染」を効果的に回避し、ソフトウェア エラーがローカライズされるため、エラーのチェックとデバッグの難しさが大幅に軽減されます。
ある人のオブジェクトに年齢や給与などの属性があるとします。
カプセル化を使用しない場合、他の人はそれを知りたがります。は取得できますが、カプセル化すると、自分が教えない限り、他の人はそのカプセル化された属性を取得できなくなります。たとえば、パソコンにはパスワードがありますが、あなたはパスワードを持っていません。他の人は自由にログインでき、それをコピーしてコンピューターに
貼り付けることができます。また、人間のような物体においては、身長や年齢といった属性は自分自身でのみ増加させることができ、他人が任意に値を割り当てることはできません。
private キーワードを使用してプロパティとメソッドをカプセル化します:
元のメンバー:
var $name; //宣言者の名前
var $sex; //宣言者の性別
var $age; //関数 run(){… … .}
カプセル化された形式に変更します:
private $name; //プライベート キーワードを使用して個人の名前をカプセル化します
private $sex; //個人の性別の秘密キーを使用してカプセル化します
private $age;人の年齢をカプセル化するプライベートキーワード
private function run(){... ... } //プライベートキーワードを使用して人の歩き方をカプセル化します
注: メンバー属性である限り、他のキーワードがある場合先頭では、元のキーワード「var」を削除する必要があります。
プライベートを通じて人間のメンバー (メンバー属性とメンバーメソッド) をカプセル化できます。パッケージのメンバーにはクラスの外部から直接アクセスできません。次のコードではエラーが発生します。
コードスニペット
コードは次のとおりです。 class Person{
/ /以下は人物のメンバー属性です
private $name; //人物の名前はprivate
private $sex; //人物の性別はprivate
private $age;その人の年齢、private でカプセル化
//この人の話し方
function Say(){
echo "私の名前は: ".$this->name." 性別: ".$this->sex."私の年齢は: ".$this->age."
";
}