カプセル化C#

WBOY
リリース: 2024-09-03 15:05:35
オリジナル
557 人が閲覧しました

C# のカプセル化は、カプセル化の機能を満たす組み込みの C# プログラミング言語機能として定義されます。カプセル化機能を理解するには、カプセル化は 1 つ以上のアイテムを 1 つのユニットにラップし、それらのアイテムに論理的または物理的な類似性があることを確認することとして定義されます。これにより、それらを一緒にパッケージ化する理由が得られます。これらは実装の詳細へのアクセスが確実に防止されるようにパッケージ化されており、これによりデータの改ざんが防止されます。詳細にアクセスできる唯一の方法は、クラスの getter 関数を使用することです。また、詳細を変更する唯一の方法は、setter 関数を使用することです。収集されたデータ メンバーとメンバー関数を 1 つのエンティティにパッケージ化したエンティティは、クラスと呼ばれます。

カプセル化 C# の構文

sprintf を使用するというアイデアは、アプリケーションの必要に応じていつでも参照できるように、コンソールに印刷可能なメッセージを出力するのではなく、印刷可能なメッセージを保存するという代替アプローチとして普及し始めました。 sprintf は「String Print」の略で、ここでは C の sprintf 関数の構文を見て、構文内のパラメーターや引数を理解します。

1. C# でカプセル化する変数の宣言。

private < data type > < variable name >;
ログイン後にコピー

2. C# でカプセル化された変数のゲッター関数。

get
{
return < variable name >;
}
ログイン後にコピー

3. C# でカプセル化された変数のセッター関数。

set
{
return < variable name >;
}
ログイン後にコピー

4. C# でカプセル化するクラスの宣言。

public class < class name >{
// Declare the elements of the public class.
}
ログイン後にコピー

C# ではカプセル化はどのように機能しますか?

  • カプセル化の概念は、他の人によって発生する可能性のある目に見えないエラーによってアプリケーション内のデータが破損する傾向があるときに生まれました。データはオブジェクト指向プログラミングの概念において重要な要素であるため、外部関数によるデータへの誤った変更を回避し、当然のことながら、悪意のある攻撃からもデータを保存する必要があります。
  • データをカプセル化する方法は、要素をプライベートであるように定義し、2 つの方法のみで変更できるようにすることです。これら 2 つの方法については、カプセル化の仕組みの全体像を把握するために、これから詳しく説明します。 1 つ目の方法は、アクセサーとミューテーターを使用する方法です。クラスを作成するとき、一部の要素をプライベートにします。これは、それらの要素がクラス外の要素からアクセスできないことを意味します。ここで、変更や取得が必要な場合に、アクセサー (取得用) とミューテーター (変更用) によって実行されるようにする 2 つの関数を作成します。これらの関数はパブリックとして定義されているため、ネイティブ クラス外の関数/クラスはミューテーターとアクセサーにアクセスできます。もう 1 つの方法はプロパティを使用する方法で、要素の取得と変更をそれぞれ許可する 2 つのプロパティ get と set があります。
  • これら 2 つの方法では、プライベート要素を含むクラスのインスタンスを定義することによって、目的のアクセサーが別のクラスで呼び出される場合に使用されます。デフォルトでは、このインスタンスには親クラス (インスタンスが属するクラス) のすべてのパブリック関数が含まれています。次に、そのパブリック プロパティ/アクセサー/ミューテーターを使用して、必要なタスクが呼び出されます。呼び出された後、対応するタスクは、タスクが実行される選択に従って、取得または変更のいずれかに割り当てられます。この仕組みは、組織内の一部の人だけが財務記録 (最も機密性の高い情報) にアクセスでき、エントリを取得または変更する必要がある場合、財務部門のインスタンスが呼び出される組織に類似していると考えることができます。対応するジョブを割り当てました。

カプセル化 C# の例

以下はカプセル化 C# の例です:

例 #1

アクセサーとミューテーターを使用してクラス内のプライベート変数にアクセスしようとしています (このコードではエラーが発生します)。

コード:

using System;
namespace EmployeeApplication {
class Employee {
private string name;
private string dept;
public string GetName() {
return name;
}
public void SetName(string n) {
name = n;
}
public string GetDept() {
return name;
}
public void SetDepartname(string d) {
dept = d;
}
public void Display() {
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Department: {0}", dept);
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Employee e = new Employee();
e.name = "AmKy";
e.dept = "EduCBA";
e.Display();
Console.ReadLine();
}
}
}
ログイン後にコピー

出力:

カプセル化C#

例 #2

適切なアクセサーとミューテーター ジャンルを使用して、クラスの要素にアクセスし、変更します。

コード:

using System;
namespace EmployeeApplication {
class Employee {
private string name;
private string dept;
public string GetName() {
return name;
}
public void SetName(string n) {
name = n;
}
public string GetDept() {
return name;
}
public void SetDepartname(string d) {
dept = d;
}
public void Display() {
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Department: {0}", dept);
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Employee e = new Employee();
e.SetName("AmKy");
e.SetDepartname("EduCBA");
e.Display();
Console.ReadLine();
}
}
}
ログイン後にコピー

出力:

カプセル化C#

例 #3

プロパティを使用したカプセル化。

コード:

using System;
namespace EmployeeApplication {
class Employee {
private string name;
private string dept;
public string DeptProp {
get {
return dept;
}
set {
dept = value;
}
}
public string EmpName {
get {
return name;
}
set {
name = value;
}
}
public void Display() {
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Department: {0}", dept);
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Employee e = new Employee();
e.EmpName = "Employee 2";
e.DeptProp = "Finance";
e.Display();
Console.ReadLine();
}
}
}
ログイン後にコピー

出力:

カプセル化C#

結論

この記事では、C# でカプセル化がどのように行われるかを例とともに説明し、他のクラスからプライベート オブジェクトにアクセスすると、たとえ親クラスのインスタンスを介してもエラーが発生し、エラーが発生する可能性があることも理解しました。コードを実行できなくなります。

以上がカプセル化C#の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!