在本文中,我們將學習 C# 類別。類別是所創建物件的藍圖。在即時場景中,我們假設 Car 是一個類別。所以汽車有一定的特徵,像是形狀、速度、內裝、顏色等等。 因此,許多公司生產符合這些要求的汽車。例如,馬魯蒂、現代的每輛車都有這些物件。我們可以定義一個名為 car 的類,並根據汽車的特性建立物件。類似地,在 OOP 或物件導向的程式中,類別具有許多屬性,例如事件、方法、欄位等。類別使程式設計師能夠根據自己的要求建立自訂類型的物件。
文法:
我們可以使用名為 the 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(); } }
說明:在上面的範例中,有一個抽象類別Animals,它具有抽象方法aml()。動物類是子類“貓”和另一個子類“狗”中固有的。在 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(); } }
說明:在上面的範例中,有一個密封方法,用於防止其他類別被繼承。因此,在這種情況下,當我們嘗試繼承密封類別時,編譯器會讀取密封關鍵字並給出錯誤。因此它不能被覆蓋。
輸出:
靜態類別
代碼:
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 方法中,我們正在存取類別 Office 的靜態資料成員。無法建立靜態類別的物件。靜態類別不能從任何其他類別繼承。
輸出:
部分課程
代碼:
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 是與這些類型的類別一起使用的關鍵字。因此它可以被分割成多個文件,其中包含一個使用partial關鍵字的方法。在此部分 class1.cs 和部分 class2.cs 被編譯器合併為單一檔案。
輸出:
註解: 存取說明符有助於存取成員以及類別本身。為了存取任何類別成員,我們應該使用點運算子。點運算子有助於將物件的名稱連結到成員的名稱。我們可以在類別內部定義方法、建構子、析構函數。
以上是C# 類別的詳細內容。更多資訊請關注PHP中文網其他相關文章!