目次:
定義-カプセル化とはどういう意味ですか?
C#のコンテキストでのカプセル化とは、ユーザーにとって不要なデータと動作を隠すオブジェクトの機能のことです。 カプセル化により、プロパティ、メソッド、およびその他のメンバーのグループを単一のユニットまたはオブジェクトと見なすことができます。
カプセル化の利点は次のとおりです。
- 偶発的な破損からのデータの保護
- クラスの各メンバーのクラス外のコードへのアクセシビリティの仕様
- コードの柔軟性と拡張性、および複雑さの軽減
- オブジェクト間のカップリングが低くなり、コードの保守性が向上します
カプセル化は、特定のクラスのユーザーが設計者が意図していない方法でオブジェクトを操作できないように、クラスのメンバーへのアクセスを制限するために使用されます。 カプセル化は、システムの全体的な機能に影響を与えることなく、クラスの機能の内部実装を隠しますが、クラスが機能の要求を処理し、要件の変化に合わせて内部構造(データまたはメソッド)を追加または変更できるようにします。
カプセル化は情報隠蔽とも呼ばれます。
Techopediaはカプセル化について説明します
C#のカプセル化は、次のアクセス修飾子を使用して指定できるオブジェクトデータへのさまざまなレベルのアクセスで実装されます。
- パブリック:プログラム内のすべてのコードへのアクセス
- プライベート:同じクラスのメンバーのみへのアクセス
- 保護:同じクラスおよびその派生クラスのメンバーへのアクセス
- 内部:現在のアセンブリへのアクセス
- 保護された内部:含まれているクラスから派生した現在のアセンブリおよび型へのアクセス
カプセル化は、そのオブジェクトの詳細を保存するEmployeeオブジェクトの例で説明できます。 カプセル化を使用することにより、Employeeオブジェクトは、オブジェクトの使用に必要なデータ(Name、EmployeeIDなど)およびメソッド(GetSalaryなど)を公開し、無関係なフィールドやメソッドを他のオブジェクトから隠すことができます。 給与情報を制限しながら、すべてのユーザーが従業員に関する基本情報にアクセスできる状況は簡単にわかります。
C#では、アクセサ(データを取得する)およびミューテータ(データを変更する)を使用してデータをカプセル化できます。これにより、公開せずにプライベートデータを間接的に操作できます。 プロパティは、プライベートデータをC#オブジェクトにカプセル化し、読み取り専用モードまたは読み取り/書き込みモードでアクセスするための代替メカニズムです。 アクセサーやミューテーターとは異なり、プロパティはオブジェクトの「設定」および「取得」値への単一のアクセスポイントを提供します。
