Presentation is loading. Please wait.

Presentation is loading. Please wait.

類別與物件 Class & Object.

Similar presentations


Presentation on theme: "類別與物件 Class & Object."— Presentation transcript:

1 類別與物件 Class & Object

2 物件導向程式設計OOP 物件導向: 封裝Encapsulation 繼承Inheritance 多形性Polymorphism 類別與物件
類別是抽象的藍圖 物件事具體的東西 物件是類別變數 物件是類別的實現 物件是類別的樣例 ….

3 類別 Class 藍圖 抽象的 定義屬性(資料)與行為(函式) 告訴程式一個物件到底長成怎樣 語法: class 類別名稱 { 範圍:
資料宣告; 函式宣告; }; 宣告在表單的標頭 範圍: Private  僅在類別內存取 Public  公開 Protected  內部及衍生類別存取

4 類別 Class class pass { public: //共用 int a; String b; void work()
if (a>=60) b=“及格”; } };

5 類別的實現(樣例化) 宣告別變數  物件 Pass pa; 類別資料與函式的存取 物件.變數; pa.a;
物件.函式; pa.work(); 範例9-2a, p.9-8

6 類別-範疇運算子:: 將類別內的函式外移時使用 原類別內保留函式宣告 函式內容外移,並加上範疇運算子:: class pass {
public: //共用 int a; String b; void work(); }; void pass::work() { b=“不及格”; if (a>=60) b=“及格”; }

7 類別-建構子&解構子 建構子: 物件建立時自動執行的函式 函式名稱需要與類別相同,不可傳回值 建構子多載兩個以上建構子 解構子:
刪除物件所占用的記憶體 ~ class pass { public: //共用 int a; String b; pass() a=99; } void work(); };

8 物件陣列 一個類別可以產生多個物件 彼此獨立 將類別產生的物件採用陣列方式來加以存取 ex 9-2f, p.9-17

9 類別 Class - 資料封裝 class pass int geta() { { private: //內部存取 return a;
int a; String b; public: void seta(int value) a=value; } int geta() { return a; } String getb() return b; void work() b="不及格"; if (a>=60) b="及格"; };

10 類別 Class - 資料封裝 pass pa; pa.seta(StrToInt(Edit1->Text)); pa.work();
Label1->Caption=pa.getb();

11 靜態資料 一個類別產生的物件彼此獨立 變數與函式獨立(跟著物件走) 靜態資料  跟著類別走  物件共用
在類別宣告時加上static保留字 需要在類別外再宣告 型態 類別名稱:: 變數名稱; ex 9-2gh, p.9-20

12 繼承 Inheritance 在舊有的類別上新增類別 舊有類別的資料與函式可被繼承(private類除外)
class 類別名稱 : 繼承方式 舊類別名稱 { }; 繼承方式: Public:舊類別維持原狀 Private :舊類別public與protected轉為private Protected:舊類別public與protected轉為protected

13 繼承 Inheritance 函式改寫(Override):名稱與舊類別相同,但功能有修改 舊類別的函式仍可以被存取
物件.舊類別名稱::函式名稱 Ex 9-3abc, p.9-26

14 繼承-抽象類別 將類別中的函式以virtual方式宣告類別自動變成抽象類別 virtual void work()=0; 無法實作物件
需要到繼承類別才可以實作物件 Ex 9-3e, p.9-36

15 繼承-多重繼承 一次繼承多個來源類別 與單一繼承相同,繼承原類別所有非private的資料與函式
Class 類別名稱:繼承方式 舊類別1, 繼承方式 舊類別2, … { }; Ex 9-4a, p.9-40


Download ppt "類別與物件 Class & Object."

Similar presentations


Ads by Google