類別是 C# 中的基本型別之一。我們可以將類別視為與問題領域相關的物件的藍圖。它是我們創建物件的模板,定義了從此類創建的物件集將共享的結構和行為。簡單來說,類別就是一個 cookie-cutter,而物件就是 cookie 本身。
類別也支援封裝,這是物件導向程式設計中的一個重要概念。這意味著將資料和處理資料的操作組合在一個地方,並為該物件的使用者提供一個簡單的 API。類別允許我們封裝數據,並對其他類別隱藏不相關的細節。
我們可以使用 class 關鍵字,後面接著類別的名稱來建立一個類別。
// User.cs public class User{ private string name; private int salary; public void Promote(){ salary += 1000; } }
在上面的範例中,User是一個代表使用者的類別。這個類別封裝了兩部分資料 - name 和 salary。這些被稱為類別字段,包含用戶的姓名和工資。它還具有一個名為 Promote() 的方法,用於提高使用者的薪資。
每個類別都有一個關聯的存取修飾符,用於控制該類別是否將對其他類別可見。以下是我們可以為存取修飾符提供的五個可能值。
存取修飾符 | 描述 th> |
---|---|
公開 | |
##無限制存取 | |
對衍生類別的有限存取 | |
對程式集的有限存取 | |
對組件或衍生類別的存取受到限制 |
禁止外部存取
要建立類別的實例,我們可以使用new
關鍵字。new 運算子計算物件資料所需的位元組數並為物件分配記憶體。然後它傳回一個指向新建立的物件的指標(也稱為引用)。
var alice = new User(); var bob = new User();
然後,將此引用儲存在等號左側的變數中。在上面的範例中,Alice和Bob保存對新建立的物件的參考或指標。
在C#中,類別的命名約定遵循PascalCase,即將複合詞中的每個單字的首字母大寫,例如StringBuilder,UserController等。不需要在檔案中建立與類別名稱相符的類別。然而,大多數C#專案都使用了這種約定。 建構子在上面的範例中,當我們建立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中文網其他相關文章!