カプセル化とは、データとそのデータを処理する関数をクラスのような単一のユニットに結合することを意味します。で オブジェクト指向プログラミング 物事を整理して安全に保つのに役立ちます。
- クラスは実装部分を非表示にし、他のクラスが必要とする機能のみを公開することができます。クラス データとメソッドをプライベートにすることで、このクラスを使用するコードに影響を与えることなく、後で表現や実装を変更できます。
- これは、保守性の可読性と使いやすさの向上に役立ちます。また、変数に割り当てられた値の検証と制御が可能になるため、データの整合性の維持にも役立ちます。
カプセル化Java でのカプセル化の実装
- データをプライベートとして宣言します。 クラスデータを非表示にして、クラスの外部から直接アクセスできないようにします。
- ゲッターとセッターを使用します。 変数をプライベートに保ち、制御されたアクセスと、多くの場合検証を伴う安全な変更のためのパブリックの getter および setter メソッドを提供します。
- 適切なアクセス修飾子を適用します。 データの非表示には private を使用し、アクセスを提供するメソッドには public を使用します。
class Programmer { private String name; // Getter method used to get the data public String getName() { return name; } // Setter method is used to set or modify the data public void setName(String name) { this.name = name; } } public class Geeks { public static void main(String[] args){ Programmer p = new Programmer(); p.setName('Geek'); System.out.println('Name=> ' + p.getName()); } }
出力
Name=> Geek
説明: 上記の例では、カプセル化を使用し、getter ( getName) とセッター ( セット名) プライベートデータを表示および変更するために使用されるメソッド。このカプセル化メカニズムにより、Programmer オブジェクトの内部状態が保護され、name 属性へのアクセスおよび変更方法の制御と柔軟性が向上します。
カプセル化の利点
カプセル化の利点は次のとおりです。
- データの隠蔽: カプセル化により、クラス変数への直接アクセスが制限され、機密データが不正アクセスから保護されます。
- 保守性の向上: 内部実装への変更は、クラスを使用する外部コードに影響を与えることなく行うことができます。
- 強化されたセキュリティ: カプセル化により、データの検証と制御が可能になり、無効な値や有害な値が設定されるのを防ぎます。
- コードの再利用性: カプセル化されたクラスは、内部ロジックを公開することなく、さまざまなプログラムで再利用できます。
- モジュール性の向上: カプセル化は、データとメソッドをクラス内にまとめて保持することで、組織化されたモジュール型コードを促進します。
カプセル化の欠点
カプセル化の欠点は次のとおりです。
- コードの複雑さの増加: すべての変数に対してゲッター メソッドとセッター メソッドを作成すると、コードが長くなり、若干複雑になる可能性があります。
- パフォーマンスのオーバーヘッド: データに直接アクセスするのではなくメソッドを介してアクセスすると、特にパフォーマンスが重要なアプリケーションでは、若干のパフォーマンス コストが発生する可能性があります。
- 場合によっては柔軟性が低下する: クラス メンバーへのアクセスを過度に制限すると、他のクラスがクラスを拡張したり効率的に使用したりする能力が制限される可能性があります。