Javaのカプセル化とは何ですか?

爱喝马黛茶的安东尼
リリース: 2019-11-14 10:06:24
オリジナル
1928 人が閲覧しました

Javaのカプセル化とは何ですか?

オブジェクト指向プログラミング手法において、カプセル化とは、抽象関数インターフェイスの実装の詳細を部分的にパッケージ化して非表示にする手法を指します。カプセル化は、外部クラスによって定義されたコードによってクラスのコードとデータがランダムにアクセスされるのを防ぐ保護バリアと考えることができます。このクラスのコードとデータへのアクセスは、厳密なインターフェイスを通じて制御する必要があります。カプセル化の主な機能は、コードを呼び出すプログラム フラグメントを変更せずに、独自の実装コードを変更できることです。適切にカプセル化すると、プログラム コードの理解と保守が容易になり、プログラム コードのセキュリティも強化されます。

カプセル化の利点

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 サイトの他の関連記事を参照してください。

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