《面向對象基礎:C++實現》學習筆記之一

1、面向對象的程序設計:對象這一概念幾乎可以擴展到生活中的每個角落,對於編程更是這樣;任何應用程序都可以根據實體或對象以及它所執行的任務來定義。

2、傳統編程的缺點:程序難以理解、數據修改存在問題、難以實現。

3、對象:是有確定邊界且與所要處理的問題相關的概念或事物;代表現實世界的實體,某個對象只有在特定應用程序中才有意義。

4、對象的用途:幫助理解現實世界、爲計算機應用程序提供實踐基礎。

5、類:是相似對象的集合;有必要將具有相似屬性和活動的對象組合成一個可以在程序中使用的單元,相似或具有共同性的對象歸入到一個類中,每個類描述一組獨立對象;類定義了對象的特徵,只有在創建了對象之後纔可以給它賦值;創建對象之後,實體的真正實例才能存在;每個對象都是它的類的一個實例;類是一個非常通用化的概念,類的結構具有通用性和靈活性。

6、屬性:在類中表示對象或實體的特徵;對象的特徵用變量來表示,稱爲類的屬性;同樣,多邊形類中所有對象都有頂點和邊;類是原型,而不是實體的樣本;類中每個實例或對象對於每個屬性都有自己的值,但是與該類的其他實例共享相同的屬性名稱或操作。

7、方法:類中表示對象或實體所需的活動;對象所需的活動也必須在相應的類中用程序來表示;一個類中所有對象都執行某些共同的活動或操作;對象所需的每個活動都定義爲類的一個函數,稱爲方法;在上述多邊形類中,繪製、擦除和移動都是方法的例子,這些方法是該類的一部分;我們可以將對象看作是一個“黑盒子”,它接收併發送消息,這個黑盒子實際上包含代碼(計算機指令序列)和數據(這些指令所操作的信息)。

8、抽象:是考察一個問題的某些方面的過程;在系統開發中,這意味着決定應該如何實現對象之前,先重點關注該對象是什麼以及做什麼;有關抽象的規範告訴我們,一個對象做什麼與它怎樣做無關;藉助類的使用,面向對象的語言都以一種清晰的方式實現數據抽象。

9、數據抽象:是識別與應用程序相關的特定實體的屬性和方法的過程;是考察有關實體的所有可用信息的過程,用來識別與應用程序相關的信息;將對象組合到類中,實際上就是對問題進行數據抽象;公有的定義對於每個類保存一次,而不是對類的每個實例各保存一次;可以一次性地爲類編寫方法,使得類中的所有對象都從代碼重用中受益。

10、繼承:是重用現有類來生成新類的一種特性;類導致繼承這一概念的產生,這種劃分的原則是每個子類與派生類共享公有屬性;新類繼承原有類的所有行爲,原有類稱爲新類的父類或超類,還有其他的一些術語:“子類”是其“超類”的“特殊化”,反過來,“超類”是其“子類”的“一般化”。

11、超類:是有其他類繼承其行爲的類。

12、子類:繼承其他類的屬性和方法的類稱爲子類。

13、用黑盒子來解釋面向對象編程的基本原則:作爲類的使用者,永遠不需要看到盒子內部;類有許多屬性和方法,使用者不需要訪問所有的屬性和方法。

14、消息的接收者:所有與對象的通信都通過消息完成的,消息發往的對象稱爲消息的接收者;消息定義了對象的接口,對象可以做的所有事情都由消息接口來表示;因此我們不必知道黑盒子裏面有什麼即可使用。

15、信息隱藏:在保持細節的私有性的同時僅通過消息來訪問對象,相應的專業術語是封裝。

16、封裝:是允許有選擇地隱藏類中/或開放類中的屬性和方法的過程;封裝的優點是一個類可以有許多屬性和方法,但是隻有其中的一些需要開放給使用者;從編程的角度來看,由於無法看到對象的黑盒子內部,因此我們不能直接修改該對象。

17、正確地封裝了一些代碼後,我們可以實現兩個目標:1)建起一堵牆,保護代碼不會受到一些低級的小錯誤的意外破壞,而這些錯誤是每個人都可能犯錯誤的;2)將錯誤隔離在小範圍內,使得它們更易於查找和修復;[ 一些代價巨大的錯誤就是由於有人對軟件進行了改動]。

18、面向對象的開發:可以在應用程序內共享信息、在將來的項目中重用設計和代碼。

19、可重用性:它是伴隨着數據和操作的抽象及封裝一起出現;所有面向對象的語言都試圖使程序的各個部分可以更容易地進行重用和擴展;程序可以分解爲可重用的對象,這些對象又可以組合起來,形成新的程序;程序員可以使用現有的類並添加附加的功能,而不用修改原來的類;有了重用代碼的方式後,程序員就可以通過組裝現有的程序片斷,更容易地編寫新程序;繼承也可以重用;我們在編寫新程序時不必從頭開始,只需重用現有的與新程序所需行爲相似的類就可以了;面向對象編程的主要技巧在於確定如何將程序劃分爲一組簡約的類;除了加快開發速度以外,類的恰恰相當構建和重用還能大大減少代碼行數,這意味着更少的缺陷和更低的維護費用。

20、多態性:多態性使得相同的函數在不同的類中有不同的行爲;面向對象的語言試圖使現有代碼更易於修改,而不用真正更改代碼,這是一種獨特而且非常強大的概念,因爲要在不進行更改的情況下修訂內容,乍看起來似乎是不可能的,使用繼承和多態性使其成爲可能;多態性是指相同函數可以在不同的類中有不同的行爲;現有對象保持不變,所做的任何更改只是對其進行添加;由於不用更改原始對象,程序員可以在維護和修改代碼時犯較少的錯誤;多態性促進了封裝;就用戶而言,類只需要有一種方法,如何在不同情況下實現繪製方法不需要讓用戶看到;面向對象編程要求程序員的思維有一個大的轉變,它加速了新程序的開發,而且如果運用得當,可以改善軟件的可維護性、可重用性和易修訂性。

21、C++簡介:C++語言是C語言的超集;C++很簡潔並且可以用於系統編程,它可以使用現有的C軟件庫,後者是我們可以在程序中重用的程序集合;在C++語言中添加的最重要的元素是類、對象和麪向對象的概念。

22、發展歷史:C++是由AT&T貝爾實驗室的Bjarne Stroustrup開發的;它是從C語言派生而來,與C語言兼容(實際上是C語言的超集),所以現有的C語言代碼可以使用到C++程序中,C++最初稱爲“帶有類的C語言”;有兩種語言對C++的設計做出了貢獻,一種是C語言,它提供了基礎功能,另一種是Simula67,它提供了類的概念。

23、特點:C++程序既快速又高效,這正是幫助C語言成爲極其流行的編程語言的特點,但是爲了保持效率而犧牲了一些靈活性;C++使用編譯時綁定,這意味着程序員必須指定對象所屬的具體的類,或者至少指定最通用的類;這種方法提供了很高的運行時效率,而且代碼較少,但是犧牲了一些重用類的能力;C++已經變得如此流行,以至於大多數新的C語言編譯器實際上是C/C++編譯器;但是要充分利用面向對象的編程,必須按C++而不是C的方式來進行構思和編程;對於經驗豐富的C語言程序員來說,這往往是一個問題;許多程序員認爲他們在用C++進行編碼,但其實他們只是使用了該語言的一小部分面向對象的功能。

24、C++的保留字:class friend virtual inline private public protected const this new delete operator。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章