カプセル化 Java

カプセル化とは何か Java?

カプセル化 Java 変数(データ)とメソッド(コード)を1つのユニットとしてまとめるメカニズムです。これは、情報の詳細を隠し、オブジェクトのデータと動作を保護するプロセスです。これは、OOPの4つの重要な概念の1つです。カプセル化クラスはテストが容易であるため、ユニットテストにも適しています。

クリック こちら ビデオにアクセスできない場合

カプセル化を学ぶ Java 例を挙げて

カプセル化の詳細を理解するには、預金と残高表示メソッドを備えた次の銀行口座クラスを検討してください。

class Account {
    private int account_number;
    private int account_balance;

    public void show Data() {
        //code to show data 
    }

    public void deposit(int a) {
        if (a < 0) {
            //show error 
        } else
            account_balance = account_balance + a;
    }
}

ハッカーがあなたの銀行口座のコードにアクセスしたとします。ハッカーは 100 つの方法であなたの口座に -XNUMX を入金しようとします。最初の方法またはアプローチを見てみましょう。

アプローチ1: 彼はコードを操作して、無効な金額 (-100 など) をあなたの銀行口座に入金しようとします。

カプセル化 Java

さて、質問は次のとおりです – それは可能ですか? 調べてみましょう。通常、クラス内の変数は、以下のように「プライベート」に設定されます。クラスで定義されたメソッドでのみアクセスできます。他のクラスやオブジェクトからはアクセスできません。

カプセル化 Java

データ メンバーがプライベートの場合、同じクラス内でのみアクセスできます。外部のクラスは、他のクラスのプライベート データ メンバーまたは変数にアクセスできません。したがって、このケースでは、ハッカーは -100 をアカウントに入金できません。

カプセル化 Java

2にアプローチ: ハッカーの最初のアプローチは金額の入金に失敗しました。次に、彼は「deposit」メソッドを使用して金額 -100 を入金しようとします。

カプセル化 Java

ただし、メソッドの実装には負の値のチェックがあります。 したがって、XNUMX 番目のアプローチも失敗します。

カプセル化 Java

したがって、データを外部に公開することはありません。 これにより、アプリケーションが安全になります。

カプセル化 Java

コード全体をカプセルと考えると、メッセージを通じてのみ通信できます。これがカプセル化という名前です。

データの隠蔽 Java

データの隠蔽 Java クラスの変数を他のクラスから隠す。現在のクラスのメソッドを通じてのみアクセスできます。実装の詳細をユーザーから隠します。しかし、データの隠蔽よりも、関連するデータの管理やグループ化を目的とします。 Java、 “protected” や “public” などの修飾子を使用できます。カプセル化により、開発者は他の部分に影響を与えずにコードの一部を簡単に変更できます。

ゲッターとセッター Java

ゲッターとセッター Java 変数の値を取得および更新するために使用される XNUMX つの従来の方法です。 これらは主に、変数値の作成、変更、削除、表示に使用されます。 setter メソッドは値の更新に使用され、getter メソッドは値の読み取りまたは取得に使用されます。 これらはアクセサーおよびミューテーターとしても知られています。

次のコードは、ゲッター メソッドとセッター メソッドの例です。

class Account{ 
private int account_number;
private int account_balance; 
    // getter method
	public int getBalance() {
        return this.account_balance;
    }
    // setter method
	public void setNumber(int num) {
        this.account_number = num;
    }
}

上記の例では、 getBalance() メソッドは変数 account_balance の値を読み取る getter メソッド、setNumber() メソッドは変数 account_number の値を設定または更新する setter メソッドです。

抽象化とカプセル化

カプセル化はよく誤解されますが、 抽象化。 勉強しましょう-

  • カプセル化とは、機能を「どのように」実現するかということです。
  • 抽象化とは、クラスが「何を」できるかということです。

この違いを理解するための簡単な例は携帯電話です。携帯電話では、回路基板の複雑なロジックがタッチスクリーンにカプセル化されており、それを抽象化するためのインターフェースが提供されています。

カプセル化の利点 Java

  • カプセル化とは、データを関連する機能とバインドすることです。 ここで機能とは「メソッド」を意味し、データとは「変数」を意味します。
  • したがって、変数とメソッドを XNUMX か所にまとめます。 その場所が「授業」です。 クラスはカプセル化のベースです。
  • 自律的AI Java カプセル化により、コード内の重要なデータメンバーを隠す(アクセスを制限する)ことができ、セキュリティが向上します。
  • 先ほど説明したように、データ メンバーが「プライベート」として宣言されている場合、そのデータ メンバーには同じクラス内でのみアクセスできます。外部のクラスは他のクラスのデータ メンバー (変数) にアクセスできません。
  • ただし、これらの変数にアクセスする必要がある場合は、次を使用する必要があります。 パブリックの「ゲッター」と「セッター」 方法。