Java-カプセル化
カプセル化 4 つの基本的な OOP 概念の 1 つです。他の 3 つは、継承、ポリモーフィズム、および抽象化です。
Java のカプセル化は、データ (変数) とデータに作用するコード (メソッド) を 1 つのユニットとしてまとめてラップするメカニズムです。カプセル化では、クラスの変数は他のクラスから隠され、現在のクラスのメソッドを介してのみアクセスできます。そのため、データの隠蔽とも呼ばれます。 .
Java でカプセル化を実現するには −
- <リ>
クラスの変数をプライベートとして宣言します。
<リ>変数値を変更および表示するパブリック セッター メソッドとゲッター メソッドを提供します。
例
以下は、Java でカプセル化を実現する方法を示す例です −
/* File name : EncapTest.java */ public class EncapTest { private String name; private String idNum; private int age; public int getAge() { return age; } public String getName() { return name; } public String getIdNum() { return idNum; } public void setAge( int newAge) { age = newAge; } public void setName(String newName) { name = newName; } public void setIdNum( String newId) { idNum = newId; } }
public setXXX() および getXXX() メソッドは、EncapTest クラスのインスタンス変数のアクセス ポイントです。通常、これらのメソッドは getter および setter と呼ばれます。したがって、変数にアクセスしたいクラスは、これらのゲッターとセッターを介して変数にアクセスする必要があります。
EncapTest クラスの変数には、次のプログラムを使用してアクセスできます −
/* File name : RunEncap.java */ public class RunEncap { public static void main(String args[]) { EncapTest encap = new EncapTest(); encap.setName("James"); encap.setAge(20); encap.setIdNum("12343ms"); System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge()); } }
これにより、次の結果が生成されます-
出力
Name : James Age : 20
カプセル化の利点
- <リ>
クラスのフィールドは、読み取り専用または書き込み専用にすることができます。
<リ>クラスは、フィールドに格納される内容を完全に制御できます。
Java