この記事では、C# クラスについて学習します。クラスは作成されるオブジェクトの設計図です。リアルタイムのシナリオでは、Car がクラスであると仮定します。つまり、車には、形状、速度、インテリア、色、その他多くの特徴などの特定の特徴があります。 したがって、多くの企業がこれらの要件を満たす車を製造しています。たとえば、マルティ、ヒュンダイのすべての車にはこれらのオブジェクトがあります。 car という名前のクラスを定義し、車の特性に従ってオブジェクトを作成できます。同様に、OOP またはオブジェクト指向プログラムでは、クラスにはイベント、メソッド、フィールドなどの多くのプロパティがあります。クラスを使用すると、プログラマは要件に応じてカスタム タイプのオブジェクトを作成できます。
構文:
class という名前のキーワードの後に、これから決定するクラスの名前を続けて中括弧で囲んで、クラスを定義できます。
Class Test { }
以下は実装方法を示す例です
抽象クラス
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; public abstract class Animals { public abstract void aml (); // abstract class method } public class Cat : Animals // inheritance { public override void aml() { Console.WriteLine("This is first animal"); } } public class Dog : Animals // another class inheritance { public override void aml() { Console.WriteLine("This is second animal"); } } public class main_method { public static void Main() // main method { Animals a; a = new Cat(); a.aml(); a = new Dog(); a.aml(); Console.ReadLine(); } }
説明: 上の例には、抽象メソッド aml() を持つ抽象クラス Animals があります。クラス動物は、子クラス「Cat」と他の子クラス「Dog」に固有です。 main メソッドでは、「a」はインスタンス化できないクラス Animals のオブジェクトです。抽象クラスは、コンストラクタとデストラクタを含む継承時に使用されます。 Override キーワードは、子クラスの継承に使用される抽象メソッドの前に必須です。
出力:
シールドクラス
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; public class Animal { public virtual void sleep() { Console.WriteLine("Animals are sleeping"); } public virtual void eat() { Console.WriteLine("Animals are eating"); } } public class Cat : Animal // inheritance { public override void sleep() { Console.WriteLine("Cat is sleeping"); } public sealed override void eat() // sealed method { Console.WriteLine("Cat is eating"); } } public class Dog : Cat // inheritance { public override void Sleep() { Console.WriteLine("Sleeping"); } public override void eat() { Console.WriteLine("Eating"); } } public class TestSealed { public static void Main() // main method { Dog d = new Dog(); d.eat(); d.fly(); } }
説明: 上記の例には、他のクラスが継承されないようにするために使用されるシールされたメソッドがあります。したがって、この場合、sealed クラスを継承しようとすると、コンパイラは sealed キーワードを読み取り、エラーを返します。したがって、オーバーライドできません。
出力:
静的クラス
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; class Office { public static string Name; // static fields public static string Location; static Office() // constructor { Name = "Microsoft"; Location = "Hyderabad"; } } class Program { static void Main(string[] args) { Console.WriteLine(Office.Name); Console.WriteLine(Office.Location); Console.Read(); } }
説明: 上記の例では、静的クラスがあり、クラスをインスタンス化不可能にする静的クラスに static キーワードが使用されています。これは、静的メンバーの名前と場所で構成されます。 main メソッドでは、クラス オフィスの静的データ メンバーにアクセスしています。静的クラスのオブジェクトは作成できません。静的クラスは他のクラスから継承できません。
出力:
部分クラス
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; // partial class1.cs public partial class Class1 { private string EmpName; private int EmpId; public Class1(string a, int t) { this.EmpName = a; this.EmpId = t; } } // partial class2.cs public partial class Class1 { public void Display() { Console.WriteLine("Employee name is : " + EmpName); Console.WriteLine("Employee Id is : " + EmpId); } } public class Class { private string EmpName; private int EmpId; public Class(string a, int t) { this.EmpName = a; this.EmpId = t; } public void Display() { Console.WriteLine("Employees name is : " + EmpName); Console.WriteLine("Employee Id is : " + EmpId); } }
説明: 上記の例では、部分クラスが実装されています。長時間の授業のときに使えます。したがって、コードを簡単にするために、複数のファイルを定義できます。 Partial は、これらのタイプのクラスで使用されるキーワードです。したがって、部分キーワードを使用したメソッドで構成される複数のファイルに分割できます。この部分的な class1.cs と部分的な class2.cs は、コンパイラーによって 1 つのファイルに結合されます。
出力:
注意: アクセス指定子は、クラス自体だけでなくメンバーにもアクセスするのに役立ちます。クラスのメンバーにアクセスするには、ドット演算子を使用する必要があります。ドット演算子は、オブジェクトの名前をメンバーの名前にリンクするのに役立ちます。クラス内でメソッド、コンストラクター、デストラクターを定義できます。
以上がC# クラスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。