クラスは、C# の基本的な型の 1 つです。クラスは、問題領域に関連するオブジェクトの設計図と考えることができます。これは作成するオブジェクトのテンプレートであり、このクラスから作成されるオブジェクトのセットによって共有される構造と動作を定義します。簡単に言えば、クラスはクッキーカッターであり、オブジェクトはクッキーそのものです。
クラスは、オブジェクト指向プログラミングにおける重要な概念であるカプセル化もサポートしています。これは、データとそのデータを処理する操作を 1 か所で結合し、そのオブジェクトのユーザーにシンプルな API を提供することを意味します。クラスを使用すると、データをカプセル化し、無関係な詳細を他のクラスから隠すことができます。
class キーワードに続いてクラス名を使用して、クラスを作成できます。
// User.cs public class User{ private string name; private int salary; public void Promote(){ salary += 1000; } }
上の例では、User はユーザーを表すクラスです。このクラスは、name と salary という 2 つのデータをカプセル化します。これらはクラス フィールドと呼ばれ、ユーザーの名前と給与が含まれます。また、ユーザーの給与を増やすために使用される Promote() というメソッドもあります。
各クラスには、そのクラスが他のクラスから見えるかどうかを制御するアクセス修飾子が関連付けられています。以下は、アクセス修飾子に指定できる 5 つの値です。
説明 | th> |
---|---|
制限なしアクセス | |
派生クラスへの制限されたアクセス | |
アセンブリへの制限されたアクセス | |
アセンブリまたは派生クラスへの制限されたアクセス | #プライベート |
new 演算子は、オブジェクトのデータに必要なバイト数を計算し、オブジェクトにメモリを割り当てます。次に、新しく作成されたオブジェクトへのポインター (参照とも呼ばれます) を返します。
var alice = new User(); var bob = new User();
C# では、クラスの命名規則は PascalCase に従います。つまり、StringBuilder、UserController など、複合語の各単語の最初の文字が大文字になります。ファイル内のクラス名と一致するクラスを作成する必要はありません。ただし、ほとんどの C# プロジェクトではこの規則が使用されます。
Constructor上記の例では、User クラスのインスタンス (つまり、alice と bob) を作成するときに、最初の名前と給与を指定しませんでした。通常、新しく作成されたオブジェクトがそのジョブを実行するには何らかの情報が必要であり、クラスのデータを初期化するためにコンストラクターが使用されます。 コンストラクターを追加して、次のようにユーザーの名前と給与を指定できます。public class User{ private string name; private int salary; public User(string name, int salary){ this.name = name; this.salary = salary; } public void Promote(){ salary += 1000; } }
var alice = new User("Alice", 50000); var bob = new User("Bob", 45000);
public User(string name){ this.name = name; this.salary = 50000; }
using System; class Program{ static void Main(){ var alice = new User(); alice.Print(); var bob = new User(); bob.Print(); var chris = new User("Chris", 50000); chris.Print(); var debs = new User("Debs", 45000); debs.Print(); var scott = new User("Scott"); scott.Print(); } } public class User{ private string name; private int salary; public User(){ } public User(string name){ this.name = name; this.salary = 50000; } public User(string name, int salary){ this.name = name; this.salary = salary; } public void Promote(){ salary += 1000; } public void Print(){ Console.WriteLine($"{name}: {salary}"); } }
: 0 : 0 Chris: 50000 Debs: 45000 Scott: 50000
以上がC# のクラスの概念を説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。