PHP オブジェクト指向データの隠蔽

巴扎黑
リリース: 2023-03-07 12:20:01
オリジナル
2719 人が閲覧しました

データ隠蔽とは何ですか?

これを見ても分かりにくいと思われる方もいるかもしれません。前回の記事でクラスを紹介する際に、変数を定義するキーワードは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 &#39;我的名字叫&#39;;
$preson ->setName("布里茨");    //通过访问成员方法进行赋值
echo $preson -> getName();      //在通过访问成员方法进行访问
//错误的使用方式
echo &#39;我的名字叫&#39;;
echo Preson :: $name;
ログイン後にコピー

上記の例では、プライベート変数 $name への変更とアクセスは、メンバー メソッドを呼び出すことによってのみ実現できます。直接呼び出すとエラーになります。

(3) protected

中国語訳は保護されたという意味です。 private キーワードはデータを完全に隠すことができます。このクラスまたはサブクラス以外では呼び出すことができません。ただし、場合によっては、一部の変数をサブクラスで呼び出し可能にする必要がありますが、他のクラスではカプセル化する必要があります。今回は、保護されたキーワードを使用します。

protected で変更されたクラス メンバーは、このクラスとサブクラスで呼び出すことができますが、他の場所で呼び出すことはできません。

Protected の表示例:

<?php
header("content-type:text/html;charset=utf-8");
class Preson{
   protected $name = &#39;维克托&#39;;
}
class Preson1 extends Preson{
   public function showName(){
       echo &#39;只有真确的调用,我才会出现&#39;;
       echo &#39;<br/>&#39;;
       echo &#39;我的名字是:&#39; . $this ->name;
       echo &#39;<br/>&#39;;
   }
}
$preson = new Preson1();
$preson -> showName();
echo &#39;你调用错了,所以下面不报错算我输:&#39;;
$preson -> name = &#39;德莱文&#39;;
ログイン後にコピー

上記の例では、まず protected というキーワードで変数を宣言し、次にサブクラスのメソッド内で一度呼び出し、最後にクラス外で直接呼び出しています。結果は一目瞭然です。 。

ヒント:

PHP では変数を変更するためのキーワードに必須の規制や要件はありませんが、オブジェクトの特性と設計を考慮して、変数が変更されたり呼び出されたりすることを防ぐために、一般に private キーワードと protected キーワードが使用されます。クラスのすぐ外で。

以上がPHP オブジェクト指向データの隠蔽の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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