欢迎来到天天文库
浏览记录
ID:50301823
大小:116.50 KB
页数:31页
时间:2020-03-12
《物件导向式问题分析.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、OOP9類別Class1物件導向式問題分析傳統的程式設計方式-「程序導向」式的設計方法「功能」為何?那些「程序」可以完成這些功能?物件導向式的設計方法找出「物件」(Object)物件就是”東西”訊息傳遞(MessagePassing)2物件導向程式語言物件導向語言(OOP),主要用來描述一個物件(Object)的類別(Class),以及如何達成所謂動態繫結(DynamicBinding)、同名異式(Polymorphism)、覆蓋(Override)、覆載(Overload)、類別的繼承(Inh
2、eritance)等等機制常見的物件導向程式語言C++JavaSmalltalkObjectPascal3Object類別Classobject’sattribute(物件的屬性)有2個Data(資料),property(Java中稱為field)又稱”成員變數”Membervariable(或datavariable)Method又稱”成員函數”Memberfunction4物件導向程式語言物件導向程式語言的優點模組化設計(ModuleDesign)獨立且合作容易維護(Easytomaint
3、ain)可重複使用Reuse/SoftwareIC5本章主題類別(Class)的宣告操作成員(OperatorMember)的定義與行內函式(Inlinefunction)建構元(Constructor)與解構元(Destructor)合成使用類別靜態的類別成員類別Class6類別的宣告回顧結構(struct)定義7類別的宣告class類別名稱{ private:型別 成員資料; public:傳回值 成員函式1(傳入值……);傳回值 成員函式2(傳入值……) //成員函式2為一連
4、線函式。{ //程式碼} };傳回值 類別名稱::成員函式1(傳入值……) { //程式碼}類別名稱變數名稱1;類別名稱變數名稱2;變數名稱1.成員函式1(傳入值……);8類別的宣告9類別的使用類別變數-案例/物件public與private存取等級不允許直接存取private資料成員10操作成員的定義操作成員的定義:定義函式的內容11行內函式行內函式:將操作成員的定義(函式的內容)寫在類別的定義中12行內函式行內函式:將操作成
5、員的定義(函式的內容)寫在類別的定義之中13行內函式使用inline保留字將操作成員定義成為行內函式14建構元(Constructor)建構元是與類別同名稱的成員函式(memberfunction),主要是用來進行資料成員的初始值設定(Initialvaluesetting)一個類別可以定義多個建構元,用以提供不同的初始化方式建構元是不允許指定函式回傳資料型態15建構元(Constructor)class類別名稱{ private:型別 成員資料; public:類別名稱(void);
6、 //建構子函式1類別名稱(傳入值……); //建構子函式2傳回值 成員函式1(傳入值……);傳回值 成員函式2(傳入值……) //成員函式2為一連線函式。{ //程式碼} ~類別名稱(); //解構元函式};類別名稱變數名稱1; //會呼叫"建構子函式1"類別名稱變數名稱2(傳入值……); //會呼叫"建構子函式2"16預設引數建構元當呼叫建構元時,若無提供足夠的參數值,建構元會以預設的引數值做為初始值17解構元(DeConst
7、ructor)解構元的名稱與建構元相同,但名稱前面須加上~符號解構元的作用與建構元剛好相反,它主要用來釋放物件所佔用的記憶體空間解構元不接受任何參數,也不傳回任何值一個類別只允許定義一個解構元18解構元–範例19解構元–範例20合成使用類別在一個類別中使用其他類別作為其資料成員的一員21靜態的類別資料成員靜態(Static)資料成員:所有的類別案例共用一個資料22靜態的類別資料成員class類別名稱{ private:型別 成員資料; static型別 靜態成員資料;
8、//只有宣告而己public:傳回值 成員函式1(傳入值……); };型別 類別名稱::靜態成員資料; //定義靜態成員資料23靜態資料成員24靜態的類別資料靜態類別資料當成員資料為定義成靜態時,每一個物件,都只有一個共用的靜態資料項。當同類別的全部物件需要共同的資料訊息時,靜態變數便顯得特別有用。靜態資料成員變數的特性和一般靜態變數一樣,雖然僅可在類別中被參考,但生命週期卻和整個程式相同。25CLASSclass是一個使用者自訂的型態,正式物件導向程式設計的主要觀念,它們允許你隱藏程
此文档下载收益归作者所有