<aside> ⚠️
補充:物件導向
讓我們來簡單複習一下 C# 的物件導向概念,包括類別、物件、方法、屬性、存取修飾詞等:
類別是用來描述某一種類型物件的藍圖或模板,裡面可以包含屬性(描述物件的狀態)和方法(描述物件的行為)。你可以把類別想像成一個模型,物件則是由這個模型創建的實例。
class Person
{
public string Name; // 屬性
public int Age;
public void Greet() // 方法
{
Console.WriteLine($"Hello, my name is {Name}");
}
}
物件是類別的實例,通過類別創建實際的物件。每個物件都有自己的屬性值。
Person person1 = new Person(); // 創建物件
person1.Name = "Alice"; // 設定屬性值
person1.Greet(); // 呼叫方法
方法是類別中的行為,定義物件可以做的動作。方法可能需要參數,也可能會回傳結果。
public void Greet() // void 表示這個方法不會回傳任何值
{
Console.WriteLine($"Hello, my name is {Name}");
}
屬性是用來存取類別內部數據的方式,通常會透過 get
和 set
控制存取權限。
public string Name { get; set; } // 屬性包含 getter 和 setter
存取修飾詞控制屬性或方法的可見性:
public
: 任何地方都可以存取。private
: 只有類別內部可以存取。protected
: 只有類別內部和子類別可以存取。class Person
{
private int age; // 只有類別內部可以存取
}
void
關鍵字void
是一個方法的回傳類型,表示這個方法不會有回傳值。
public void Greet()
{
// 不回傳任何結果
}
建構子是一種特殊的方法,在物件被創建時自動呼叫,用來初始化物件的屬性。
class Person
{
public string Name;
public int Age;
public Person(string name, int age) // 建構子
{
Name = name;
Age = age;
}
}
void
表示不會回傳結果的函數。這些概念是 C# 物件導向程式設計的基礎
+--------------------------------------------------+
| using | // 用來引用其他命名空間中的類別和方法
+--------------------------------------------------+
|
+------------------------------------------+
| namespace | // 命名空間,用來組織代碼
+------------------------------------------+
|
+----------------------------------+
| class | // 類別,具體實作行為的藍圖
+----------------------------------+
|
+--------------------------+
| public/protected | // 公開/保護的成員
| |
| +----------------------+
| | 方法 (Method) | // 行為 (可以是 public/protected)
| +----------------------+
| |
| +----------------------+
| | 屬性 (Property) | // 狀態 (可以是 public/protected)
| +----------------------+
| |
+--------------------------+
| private | // 私有成員
| |
| +----------------------+
| | 方法 (Method) | // 私有行為 (private)
| +----------------------+
| |
| +----------------------+
| | 屬性 (Property) | // 私有狀態 (private)
| +----------------------+
using
: 最頂層,用來引用命名空間,讓你的程式碼可以使用其他類別或函式庫(例如 using System;
)。namespace
: 命名空間,用來組織和區分不同類別。命名空間讓相同名稱的類別可以存在於不同的範圍內。class
: 類別是命名空間內的具體實作,包含屬性和方法。它是物件導向程式設計的核心。public
和 protected
: 公開或保護的屬性和方法,可以被外部或繼承類別存取。
public
成員可以在任何地方存取。protected
成員只能被類別及其子類別存取。private
: 私有的屬性和方法,僅限於類別內部存取,無法從外部或子類別直接存取。</aside>
using
宣告
Main
方法)
using System; // 引用 System 命名空間
namespace HelloWorldApp // 定義命名空間 HelloWorldApp
{
class Program // 定義類別 Program
{
// 主方法:應用程式的入口點
static void Main(string[] args)
{
Console.WriteLine("Hello, World!"); // 輸出 "Hello, World!"
// 呼叫自訂函數
int result = AddNumbers(3, 5);
Console.WriteLine("The sum is: " + result); // 輸出和
}
// 自訂函數:計算兩個整數的和
static int AddNumbers(int a, int b)
{
return a + b; // 回傳兩數之和
}
}
}
using System;
System
命名空間,允許使用其內部的類別和方法,例如 Console
類別來輸出文字。namespace HelloWorldApp
HelloWorldApp
的命名空間,用來組織程式中的類別。命名空間有助於避免名稱衝突。class Program
Program
的類別。所有程式碼都放在這個類別中。static void Main(string[] args)
Main
是應用程式的入口點,程式從這裡開始執行。它是 static
的,因為在程式啟動時不需要建立 Program
類別的實例。void
表示這個方法沒有回傳值。string[] args
是參數列表,可以用來接受命令列參數。Console.WriteLine("Hello, World!");
Console.WriteLine
方法來輸出文字 "Hello, World!"
到控制台。AddNumbers
AddNumbers(3, 5)
函數被呼叫,用於計算兩個數字的和。返回的結果賦值給變數 result
,然後輸出到控制台。AddNumbers
static int AddNumbers(int a, int b)
是一個自訂的靜態函數,接受兩個整數參數 a
和 b
,並回傳它們的和。public
、private
、protected
等)int
、string
或 void
,如果沒有回傳值){}
包圍的程式碼塊)static int AddNumbers(int a, int b) // 定義一個靜態函數 AddNumbers
{
return a + b; // 回傳兩個整數的和
}
static
:表示此方法不需要依賴物件實例即可呼叫。int
:回傳類型,這個函數會回傳一個整數。AddNumbers
:函數名稱。