次の記事「PHP でのカプセル化」では、PHP カプセル化の詳細な概要を説明します。
広告
このカテゴリーの人気コース
PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
- 初期の頃、コンピューター プログラムは長いコマンドのシーケンスでした。その後、コマンドは関数と呼ばれるコマンドのリストに組み込まれました。
- すべてのデータは 1 つの場所に保存されました。これは、呼び出されたすべての場所から変更されたため、1 つの関数で変更されたデータが他の機能に影響を与えるため、多くの問題が発生しました。この問題を解決するために、OOP は PHP でカプセル化を使用します。カプセル化とは何なのか見てみましょう。
- カプセル化は、オブジェクト指向プログラミング言語 (OOP) の基本的なトピックです。これは、データ (属性) とメソッド (関数) を単一のユニット (クラス) にバインドするという概念を示しています。この用語は、情報隠蔽とも呼ばれます。
- これは、クラスのデータとメソッドをプライベートにすることで実現されます。設計レベルではなく実装レベルで問題を解決します。
- カプセル化は、特に保護のために使用されます。オブジェクトのデータを他のクラス/メソッドから隠す処理であり、クラスのメンバーはデータへのアクセスを禁止されます。
- 他の人が見ることができない属性があり、それをデータ メンバーへのすべてのアクセスを提供する関数またはメソッドとバンドルすると、コンテンツを非表示にしてオブジェクトへのアクセスを制御できます。
- ユーザーは内部実装については意識せず、クラスがどのようにデータを変数に格納するかという機能の上部または最上位のビューのみを知ることになります。オブジェクトの関数は、他のオブジェクトの関数にアクセスできます。
- 私たちの日常生活において、カプセル化はシャツやパンツなどを保管できるワードローブのようなものです。この場合、ワードローブがメインクラスとなり、属性は衣服、箱などとなります。
PHP でのカプセル化はどのように機能しますか?
- ご存知のとおり、カプセル化はユーザーから詳細を隠すために使用されます。これを実現するには、クラスのオブジェクトを作成し、そのオブジェクトがメソッドやメソッドを呼び出して、定義されたプロパティを使用してタスクを実行します。
- エアコンとエアコンのメーカーの例を見てみましょう。
あなたがエアコン メーカーで、エアコン設計 (クラス) を設計して統合したとします。あなたの設備を使用して、販売目的のエアコン(物体)を製造していることになります。エアコンを販売するとき、ユーザーはエアコンの仕組みではなく、エアコンの使い方を知る必要があります。または、ラップトップを持っていて、それを操作するためのインターフェイスがあると仮定すると、エアコンのサービスを使用することになります。実際にどのように動作するかを知る代わりにラップトップを使用します。
- これは、関数を含むクラスを作成していることを意味します。クラスのオブジェクトを作成すると、元のクラスに干渉することなく、そのオブジェクトによってクラスの機能を利用できるようになります。
- カプセル化とは、実装されたコード内でオブジェクトまたは変数を表示したい方法です。
例
リーリー
プライベート/保護されたプロパティにアクセスする必要がある場合は、クラスでゲッター メソッドとセッター メソッドを使用できます。
その名のとおり、
- ゲッター メソッドは、他のクラスの属性を取得します。
- setter メソッドは属性/データの値を修正/変更します。
- 実装するメソッドに応じて、どのような権限を与える必要があるかを決定できます。読み取り専用、書き込み専用、完全なアクセス許可を与えることも、まったくアクセス許可を与えないこともできます。これを実現するには、public、private、protected などのアクセス指定子を使用します。
- パブリック プロパティはクラス内およびクラス外のどこでも使用できますが、クラス外のプライベート プロパティや保護されたプロパティを直接呼び出して使用することはできません。プライベート メソッドは同じクラス内でアクセスでき、プロテクト メソッドはサブクラスからのみアクセスできます。外部では、クラスは他のクラスのプライベート メソッドまたは保護されたメソッドにアクセスできません。
- ゲッター メソッドとセッター メソッドを使用すると、クラス外の変数やメソッドにもアクセスできます。従業員クラスを見てみましょう。クラスに次のメソッドを追加します。
リーリー
そして、次のように関数を呼び出すことでアクセスできます。
リーリー
PHP でのカプセル化の例
次に例を示します:
実装されたコード:
リーリー
出力:
PHP でのカプセル化の利点
- カプセル化は、データ (変数/属性) とクラスのメンバー関数をバインドするのに役立ちます。
- クラスのフィールドは、public、private、protected などのアクセス指定子を使用して読み取り専用または書き込み専用にできます。
- コードのセキュリティと柔軟性が向上し、保守が容易になります。
- カプセル化を使用すると、メソッドとデータ属性を直接呼び出すことはできません。したがって、ユーザーによる違法なデータ アクセスはありません。
- これにより、同じコードや関数を使用する他のロジック/コードを壊すことなく、実装されたコードを変更できます。
- オブジェクトのデータの整合性を提供します。
- クラスのユーザーは、クラスがデータをどのように保存するのか知りません。
- カプセル化により、データの予期しない変更が防止されます。
- カプセル化により再利用性も向上し、新しい要件やニーズに応じて簡単に変更できます。
結論
この記事では、最も重要なオブジェクト指向プログラミングの概念の 1 つを学びました。カプセル化は、複数の場所で呼び出される関数やメソッドを克服するために最も有名で一般的に使用される手法の 1 つです。
カプセル化の重要性は、ユーザーの複雑なコードを隠し、実際の機能をユーザーに示すことです。コード内で適切なカプセル化が行われていない場合、不適切な設計が発生します。したがって、これは、PHP、JAVA など、ほとんどの最新のプログラミング言語がカプセル化をサポートしているという事実に反映されています。
以上がPHP でのカプセル化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。