オブジェクト指向プログラミング手法において、カプセル化とは、抽象関数インターフェイスの実装の詳細を部分的にパッケージ化して非表示にする手法を指します。カプセル化は、外部クラスによって定義されたコードによってクラスのコードとデータがランダムにアクセスされるのを防ぐ保護バリアと考えることができます。このクラスのコードとデータへのアクセスは、厳密なインターフェイスを通じて制御する必要があります。カプセル化の主な機能は、コードを呼び出すプログラム フラグメントを変更せずに、独自の実装コードを変更できることです。適切にカプセル化すると、プログラム コードの理解と保守が容易になり、プログラム コードのセキュリティも強化されます。
カプセル化の利点
1. 適切なカプセル化により結合を軽減できます。
2. クラス内の構造は自由に変更できます。
3. メンバー変数をより正確に制御できます。
4. 情報を非表示にし、詳細を実装します。
Java カプセル化を実装する手順
1. プロパティの表示設定を変更して、プロパティへのアクセスを制限します (通常はプライベートに制限されます)。例:
public class Person { private String name; private int age; }
このコードでは、name 属性と age 属性が private に設定されており、このクラスのみがアクセスでき、他のクラスはアクセスできないため、情報が隠されています。
2. 各値属性への外部パブリック メソッド アクセスを提供します。つまり、プライベート属性にアクセスするための割り当てメソッドのペアを作成します。例:
public class Person{ private String name; private int age; public int getAge(){ return age; } public String getName(){ return name; } public void setAge(int age){ this.age = age; } public void setName(String name){ this.name = name; } }
このキーを使用します。インスタンス変数 (プライベート String 名) とローカル変数 (setName(String name) の名前変数) の間の同じ名前の競合を解決します。
例
Java カプセル化クラスの例を見てみましょう:
EncapTest.java ファイル コード:
/* 文件名: 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; } }
上記 インスタンス内のパブリック メソッドは、外部クラスがクラスのメンバー変数にアクセスするための入り口です。
通常、これらのメソッドはゲッター メソッドおよびセッター メソッドと呼ばれます。
したがって、クラス内のプライベート メンバー変数にアクセスしたいクラスは、これらのゲッター メソッドとセッター メソッドを経由する必要があります。
次の例は、EncapTest クラスの変数にアクセスする方法を示しています:
RunEncap.java 文件代码: /* F文件名 : 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
numerousjava トレーニング ビデオはすべて PHP 中国語 Web サイトにあります。オンラインで学習することを歓迎します。
以上がJavaのカプセル化とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。