物件、類別與 OOP 特性概述


Posted by Mephisto on 2025-03-09

1. 物件 (Object)

簡要的定義 : 使用程式技巧模擬真實世界中的物件而得到的程式碼與資料。
構成物件的基本要素 :

  1. 具有屬性(Properties)
  2. 具有方法(Methods)
  3. 有訊息與事件(Messages & Events)
  4. 能被識別(Identity)

1-1. 物件具有屬性

直接以例子做說明,一個箱子(Box)的長度為 80 公分,那我們就可以定義 Box 為物件名稱,然後長度 Length 為它的屬性名稱,而 80 公分是長度屬性的屬性值。程式碼實作 :

Box.Length = 80;

1-2. 物件具有方法

直接以例子做說明,開車的時候,轉動方向盤時可以讓車輛轉向,這些動作就是我們的方法,那我們要描述車輛 Car 移動 Move 到座標 (100,200) 的位置,程式碼實作 :

Car.Move(100, 200);

1-3. 物件要有訊息與事件

事件也是物件的一種方法,不過,這種方法是由物件本身或其他物件來啟動執行的。簡單的例子,希望當在 button1 按鈕控制項上面按一下,會觸動該按鈕的 Click 事件。首先在程式中要先設定當 button1Click 事件被觸發時會交由 button1_Click 事件處理函式去處理的寫法 :

button1.Click += new EventHandler(button1_Click);

程式執行時,當在 button1 按鈕控制項上面按一下,由於有上面敘述的設定,馬上會執行下面 button1_Click 事件處理函式內的程式碼 :

private void button1_Click(object sender, EventArgs e) // "object sender, EventArgs e" 可視為訊息。
{
...
}

1-4. 物件要能被識別

簡單來說,就是要能清楚分辨出程式存取的是哪個物件的屬性或執行哪個物件的方法

Car1.Forward();   // Car1 前進
Car2.Backward();  // Car2 倒退

2. 類別 (Class)

簡要的定義 : 一種設計方法,用來定義物件的結構,描述這些物件的屬性與方法。

3. OOP 特性

  1. 抽象化(Abstraction)
  2. 封裝(Encapsulation)
  3. 繼承(Inheritance)
  4. 多形(Polymorphism)
  5. 動態繫結(Dynamic binding)

#OOP







Related Posts

雜談 - 關於設計:TDD 邪教論

雜談 - 關於設計:TDD 邪教論

Chapter 1. 重構:第一個範例

Chapter 1. 重構:第一個範例

Laravel 5 component & slot

Laravel 5 component & slot


Comments