早期程式設計多採面向過程(OPP)思維:程式從入口點開始徑直執行至結束,程式碼重用率低、維護困難。面向對象(OOP)將現實世界建模為一系列物件,每個物件封裝屬性(狀態)與方法(行為),透過類別作為藍圖實例化物件,實現程式碼的模組化、可擴展與易維護。
類別由欄位、屬性、方法、建構函式等成員組成:
class Person
{
// 欄位:直接儲存資料,通常設為 private 並透過屬性暴露
public string Name;
public string Gender;
public int Age;
public double Weight;
// 無參數建構函式:預設初始化
public Person()
{
Name = "LFC";
Gender = "man";
Age = 1;
Weight = 10;
}
// 多載建構函式:接受外部參數初始化
public Person(string name, string gender, int age, double weight)
{
this.Name = name;
this.Gender = gender;
this.Age = age;
this.Weight = weight;
}
// 方法:封裝行為邏輯
public void Eat(double quantity)
{
Weight += quantity;
}
public void Exercise(double amount)
{
Weight -= amount;
}
}
Person myWife = new Person(); // 呼叫無參數建構函式
Console.WriteLine(myWife.Weight); // 10
myWife.Eat(22);
Console.WriteLine(myWife.Weight); // 32
myWife.Exercise(3.2);
Console.WriteLine(myWife.Weight); // 28.8
this 關鍵字在建構函式與方法中代表當前實例,用於區分同名參數與欄位。
| 特性 | 欄位 | 屬性 |
|---|---|---|
| 本質 | 直接儲存記憶體位置的變數 | 邏輯欄位,封裝 get/set 存取器 |
| 記憶體佔用 | 佔用實際儲存空間 | 不佔用額外記憶體 |
| 存取控制 | 難以攔截讀寫 | 可在 set 中驗證、轉換、觸發事件 |
| 慣用命名 | camelCase 或 _camelCase | PascalCase |
| 典型用途 | 類別內部實作細節 | 對外公開的資料介面 |
class School
{
private string _schoolName; // 私有備份欄位
public string SchoolName
{
get { return _schoolName; }
set { _schoolName = value; } // value 代表傳入的新值
}
}
屬性讓類別能控制資料如何被讀取與修改,是封裝原則的核心體現。

類別定義了物件的結構契約,物件是契約的具體實例。透過欄位儲存狀態、屬性控制存取、方法表達行為、建構函式保證初始化,C# 提供完整的面向對象建模工具。下一階段將深入探討繼承、多型、介面等進階 OOP 機制。