文章

第8天:類別與物件

課程簡介

今天,我們將深入探討「類別」和「物件」這兩個核心概念。在物件導向程式設計(OOP)中,類別是建構物件的藍圖,定義了物件的屬性(特徵)和方法(行為)。物件則是類別的具體實例,是程式中可操作的實體。透過這堂課程,您將學習如何定義類別和建立物件,並瞭解如何利用這些概念來構建程式。


學習目標

  • 瞭解類別與物件的概念
  • 學會定義類別並建立物件
  • 瞭解屬性與方法的應用
  • 學習如何使用建構函數來初始化物件

課程內容

1. 類別的基本概念

類別(Class)是物件的模板或藍圖,定義了物件的屬性和方法。在 C# 中,我們使用 class 關鍵字來定義類別,並在類別中設定屬性和方法。例如,可以定義一個 Car 類別,包含屬性(如顏色和速度)和方法(如加速和煞車)。

1
2
3
4
5
6
7
8
9
10
public class Car
{
    public string Color;
    public int Speed;

    public void Drive()
    {
        Console.WriteLine("The car is driving.");
    }
}

2. 物件的基本概念

物件(Object)是從類別生成的具體實例,是類別的具象化。物件透過 new 關鍵字來創建,並存取類別中定義的屬性和方法。例如:

1
2
3
4
Car myCar = new Car();
myCar.Color = "Red";
myCar.Speed = 120;
myCar.Drive();

在此範例中,myCarCar 類別的一個物件實例,可以透過此物件存取 Car 類別中的屬性 Color 和方法 Drive


3. 屬性與方法

類別包含兩種成員:屬性(Properties)和 方法(Methods)。

屬性

屬性用於描述物件的特徵,通常用於儲存物件的資料。例如:

1
2
3
4
5
public class Car
{
    public string Color;
    public int Speed;
}

在此範例中,ColorSpeedCar 類別的屬性。

方法

方法用於定義物件的行為,是物件執行的動作。例如:

1
2
3
4
public void Drive()
{
    Console.WriteLine("The car is driving.");
}

在此範例中,Drive 方法定義了 Car 類別的行為,當呼叫此方法時,車輛開始行駛。


4. 使用建構函數初始化物件

建構函數是一種特殊的成員方法,在創建物件時自動呼叫,用於初始化物件的屬性。建構函數的名稱與類別名稱相同,且不包含回傳類型。

預設建構函數

若未定義建構函數,C# 會自動提供一個預設建構函數。

自訂建構函數

可以透過自訂建構函數來指定初始值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Car
{
    public string Color;
    public int Speed;

    // 自訂建構函數
    public Car(string color, int speed)
    {
        Color = color;
        Speed = speed;
    }

    public void Drive()
    {
        Console.WriteLine("The " + Color + " car is driving at " + Speed + " km/h.");
    }
}

// 使用建構函數初始化物件
Car myCar = new Car("Blue", 100);
myCar.Drive();

此範例中的建構函數 Car(string color, int speed) 用於創建物件時初始化 ColorSpeed 屬性。


5. 存取修飾詞

在 C# 中,存取修飾詞用於控制類別成員(屬性和方法)的可見性。常用的修飾詞包括:

  • public:公開成員,類別內外皆可存取。
  • private:私有成員,僅限於類別內部存取。
  • protected:受保護成員,可由同一類別或繼承的子類別存取。

範例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Car
{
    public string Color;   // 公開屬性
    private int Speed;     // 私有屬性

    public Car(string color, int speed)
    {
        Color = color;
        Speed = speed;
    }

    public void DisplaySpeed()
    {
        Console.WriteLine("The speed of the car is " + Speed + " km/h.");
    }
}

實作練習

  1. 創建類別並建立物件
    • Program.cs 檔案中新增以下程式碼:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      
      using System;
      
      class Program
      {
          static void Main(string[] args)
          {
              Car myCar = new Car("Green", 80);
              myCar.DisplaySpeed();
          }
      }
      
      public class Car
      {
          public string Color;
          private int Speed;
      
          public Car(string color, int speed)
          {
              Color = color;
              Speed = speed;
          }
      
          public void Drive()
          {
              Console.WriteLine("The " + Color + " car is driving.");
          }
      
          public void DisplaySpeed()
          {
              Console.WriteLine("The speed of the car is " + Speed + " km/h.");
          }
      }
      
  2. 執行程式
    • 使用以下指令來執行程式並觀察輸出:
      1
      
      dotnet run
      
    • 查看輸出,確認 myCar 物件的 DisplaySpeed 方法的輸出是否符合預期。

教學重點

  • 了解類別和物件的基本概念。
  • 建立並初始化物件。
  • 使用屬性和方法來操作物件。
  • 瞭解建構函數的作用及其應用。

在下一節中,我們將進一步學習類別的進階功能,如屬性設定方法(get 和 set)、靜態成員(Static Members)等。

本文章以 CC BY 4.0 授權