1。カプセル化とは何ですか?
カプセル化は、オブジェクト指向プログラミング(POO)の基本原則の1つであり、オブジェクトの実装の詳細を隠すことができます。これは、システムと対話するシステムの他の部分に影響を与えることなく、オブジェクトの内部実装を変更できることを意味します。この機能は、将来のコードの維持のモジュール性と容易さを促進します。
2.なぜカプセル化を使用するのですか?
カプセル化の使用は、いくつかの理由で良い実践と見なされます:
- 簡単に外科的メンテナンス:パブリックインターフェイスが同じままであるため、このクラスを使用するコードを変更する必要なく、クラスの実装を変更できます。
データ保護- :オブジェクトの内部データへの直接アクセスを防ぐため、オブジェクトのオブジェクトの整合性を保護します。
一貫性と予測可能性
:メソッドと属性が一貫して使用され、- を保証します。
3.どのようにカプセル化しますか?
カプセル化は、クラス属性とメソッドの可視性を制限する
アクセス修飾子
によって実装されます。メインアクセス修飾子は次のとおりです。
private
:属性とメソッドはクラス自体内でのみアクセスできます。
- Protected :属性とメソッドはクラス自体およびサブクラス内でアクセスできます。
public - :属性とメソッドには、コードの任意の部分からアクセスできます。
4.カプセル化する方法は?
- クラスの属性をカプセル化するには、それらを private として宣言します。たとえば、Personクラスでは、名前属性は次のようにカプセル化されます。
パッケージexamples.pooo.ex;
パブリッククラスの人{
プライベート文字列名;
//名前属性にアクセスする方法
public string getName(){
返品名;
}
//名前属性を変更する方法
public void setName(string name){
this.name = name;
}
}
プライベート属性へのアクセス
プライベート属性は、メソッド getter
および
setter
package exemplos.poo.ex;
public class Pessoa {
private String nome;
// Método para acessar o atributo nome
public String getNome() {
return nome;
}
// Método para modificar o atributo nome
public void setNome(String nome) {
this.nome = nome;
}
}
private
の場合のように、この属性への他のクラスアクセスを制限する修飾子を持つことができるため、属性にアクセスまたは操作する方法を提供します:
getter :属性の値を返す方法。
setter :属性の値を変更できる方法。
5。カプセル化をいつ使用しますか?
-
カプセル化は、可能な限りうんちに適用する必要があります。
- データ保護:オブジェクトの内部データが直接アクセスされないようにします。
modifiability
:システムの他の部分に影響を与えることなく、コードの変更を促進します。
コード再利用
:異なるコンテキストで再利用できるクラスの作成を促進します。
Testability - :コードの一部を分離し、テストをより簡単に効果的にします。
セキュリティ
:内部データに対する不要な操作のリスクを軽減します。
-
結論
カプセル化は、オブジェクト指向のプログラミングにおける重要なプラクティスであり、より堅牢で安全で、保守が簡単になりやすくなります。アクセス修飾子とセッターメソッドを使用すると、属性へのアクセスを制御し、オブジェクト間のより安全で予測可能な相互作用を促進できます。
-