首頁  >  文章  >  後端開發  >  解釋一下C#中類別的概念

解釋一下C#中類別的概念

WBOY
WBOY轉載
2023-08-27 22:45:141412瀏覽

類別是 C# 中的基本型別之一。我們可以將類別視為與問題領域相關的物件的藍圖。它是我們創建物件的模板,定義了從此類創建的物件集將共享的結構和行為。簡單來說,類別就是一個 cookie-cutter,而物件就是 cookie 本身。

類別也支援封裝,這是物件導向程式設計中的一個重要概念。這意味著將資料和處理資料的操作組合在一個地方,並為該物件的使用者提供一個簡單的 API。類別允許我們封裝數據,並對其他類別隱藏不相關的細節。

我們可以使用 class 關鍵字,後面接著類別的名稱來建立一個類別。

// User.cs
public class User{
   private string name;
   private int salary;
   public void Promote(){
      salary += 1000;
   }
}

在上面的範例中,User是一個代表使用者的類別。這個類別封裝了兩部分資料 - namesalary。這些被稱為類別字段,包含用戶的姓名和工資。它還具有一個名為 Promote() 的方法,用於提高使用者的薪資。

每個類別都有一個關聯的存取修飾符,用於控制該類別是否將對其他類別可見。以下是我們可以為存取修飾符提供的五個可能值。

##無限制存取受保護對衍生類別的有限存取內對程式集的有限存取受保護的內部對組件或衍生類別的存取受到限制私有
存取修飾符 描述 th>
公開

禁止外部存取

要建立類別的實例,我們可以使用

new

關鍵字。

new解釋一下C#中類別的概念 運算子計算物件資料所需的位元組數並為物件分配記憶體。然後它傳回一個指向新建立的物件的指標(也稱為引用)。

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

Example### 實例示範###
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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除