データ隠蔽とは何ですか?
これを見ても分かりにくいと思われる方もいるかもしれません。前回の記事でクラスを紹介する際に、変数を定義するキーワードはpublicであると言いましたが、これだけではなく、public、private、protected、static、finalなどのキーワードがクラスを制限するために使われます。メンバー (変数およびメソッドのアクセス許可を含む)。次に、最初の 3 つのキーワードの使用方法を説明します。
注意事項:
メンバー変数とメンバー メソッドの制限は、キーワードの使用時と同じです。したがって、ここでは、これらのキーワードのさまざまな使用法を説明するための例としてメンバー変数のみを使用します。メンバーメソッドにも同じことが当てはまります。
それでは、これらのキーワードを詳しく紹介しましょう:
(1) public
中国語翻訳は公開されています。名前が示すように、これはパブリックであり、隠しデータ情報を必要としません。プログラム内のどこからでも (クラス内、クラス外) 他のクラスやオブジェクトから呼び出すことができます。サブクラスは、親クラスのすべてのパブリック メンバーを継承して使用できます。
この章を説明する前に、パブリック宣言を使用して変数とメソッドを定義しましたが、すべてのメソッドもデフォルトでパブリックであるため、変数とメソッドの呼び出しは非常に混乱します。この状況を解決するために、2 番目のキーワードであるプライベートについて説明します。
public は以前に使用されていたため、ここでは例を示しません。
(2)プライベート
中国語訳はプライベート、プライベートです。 private によって変更された変数とメソッドは、それらが配置されているクラス内でのみ呼び出しおよび変更でき、クラスの外部からアクセスすることはできません。サブクラスではどちらも不可能です。
プライベートの表示例:
<?php header("content-type:text/html;charset=utf-8"); class Preson{ private $name = "雷克赛"; public function setName($name){ $this -> name = $name; } public function getName(){ return $this ->name; } } class Preson1 extends Preson{ } $preson = new Preson(); //正确的使用方式 echo '我的名字叫'; $preson ->setName("布里茨"); //通过访问成员方法进行赋值 echo $preson -> getName(); //在通过访问成员方法进行访问 //错误的使用方式 echo '我的名字叫'; echo Preson :: $name;
上記の例では、プライベート変数 $name への変更とアクセスは、メンバー メソッドを呼び出すことによってのみ実現できます。直接呼び出すとエラーになります。
(3) protected
中国語訳は保護されたという意味です。 private キーワードはデータを完全に隠すことができます。このクラスまたはサブクラス以外では呼び出すことができません。ただし、場合によっては、一部の変数をサブクラスで呼び出し可能にする必要がありますが、他のクラスではカプセル化する必要があります。今回は、保護されたキーワードを使用します。
protected で変更されたクラス メンバーは、このクラスとサブクラスで呼び出すことができますが、他の場所で呼び出すことはできません。
Protected の表示例:
<?php header("content-type:text/html;charset=utf-8"); class Preson{ protected $name = '维克托'; } class Preson1 extends Preson{ public function showName(){ echo '只有真确的调用,我才会出现'; echo '<br/>'; echo '我的名字是:' . $this ->name; echo '<br/>'; } } $preson = new Preson1(); $preson -> showName(); echo '你调用错了,所以下面不报错算我输:'; $preson -> name = '德莱文';
上記の例では、まず protected というキーワードで変数を宣言し、次にサブクラスのメソッド内で一度呼び出し、最後にクラス外で直接呼び出しています。結果は一目瞭然です。 。
ヒント:
PHP では変数を変更するためのキーワードに必須の規制や要件はありませんが、オブジェクトの特性と設計を考慮して、変数が変更されたり呼び出されたりすることを防ぐために、一般に private キーワードと protected キーワードが使用されます。クラスのすぐ外で。
以上がPHP オブジェクト指向データの隠蔽の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。