首頁  >  文章  >  後端開發  >  C# 類別

C# 類別

PHPz
PHPz原創
2024-09-03 15:26:02390瀏覽

在本文中,我們將學習 C# 類別。類別是所創建物件的藍圖。在即時場景中,我們假設 Car 是一個類別。所以汽車有一定的特徵,像是形狀、速度、內裝、顏色等等。  因此,許多公司生產符合這些要求的汽車。例如,馬魯蒂、現代的每輛車都有這些物件。我們可以定義一個名為 car 的類,並根據汽車的特性建立物件。類似地,在 OOP 或物件導向的程式中,類別具有許多屬性,例如事件、方法、欄位等。類別使程式設計師能夠根據自己的要求建立自訂類型的物件。

文法:

我們可以使用名為 the class 的關鍵字來定義類,後面跟著我們將決定的類別的名稱,並用一對花括號括起來。

Class Test {  }

實作 C# 類別的範例

以下範例展示如何實現它

範例#1

抽象類別

代碼:

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關鍵字是抽象方法之前必須的,用於繼承子類別。

輸出:

C# 類別

範例#2

密封等級

代碼:

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();
}
}

說明:在上面的範例中,有一個密封方法,用於防止其他類別被繼承。因此,在這種情況下,當我們嘗試繼承密封類別時,編譯器會讀取密封關鍵字並給出錯誤。因此它不能被覆蓋。

輸出:

C# 類別

範例 #3

靜態類別

代碼:

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 的靜態資料成員。無法建立靜態類別的物件。靜態類別不能從任何其他類別繼承。

輸出:

C# 類別

範例#4

部分課程

代碼:

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# 類別

註解: 存取說明符有助於存取成員以及類別本身。

結論

為了存取任何類別成員,我們應該使用點運算子。點運算子有助於將物件的名稱連結到成員的名稱。我們可以在類別內部定義方法、建構子、析構函數。

以上是C# 類別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C# 執行緒同步下一篇:C# 執行緒同步