爲什麼對象如此重要----C++學習筆記之一

對於面向對象的程序設計方法,首先要建立對象的概念:


1、萬物皆爲對象。對象可以被認爲是一個奇特的變量,他能存放數據,並且可以對他提出請求,要求他執行自身的運算。


2、程序就是一組對象,對象之間相互通過發送消息互相通知做什麼。更具體的講可以將消息看做對於某個對象的某個特定方法。


3、每個對象都有他自己的由其他對象構成的存儲區。這樣就可以通過已經存在的對象來構造新的對象,因此程序員可以構造出複雜的程序,而且可以將複雜性隱藏在對象的簡明性之後。


4、每個對象都有一個類型。採用OOP術語,每個對象都是某個類的一個實例。


5、一個特定類型的所有對象都可以接收相同的消息。子類能夠繼承父類的所有方法,這是OOP的強大思想之一。


C++的特性一:實現的隱藏

程序員分爲兩類:1、類開發者,2、應用開發者。類開發者的目標是創建類,這個類只暴露給應用開發者必須要知道的東西,其他的信息都隱藏起來。因爲如果應用開發者不需要,就沒有必要暴露,被隱藏的通常是類的內部管理功能,容易受到物質的應用開發者的損害,所以隱藏可以減少程序的錯誤,隱藏的概念怎麼強調都不過分。隱藏的另外一個好處就是:你可以改變一個類的內部實現,而不必擔心這樣做會影響應用程序的功能。C++中使用了明確的關鍵字來設置類的邊界:public,private,protected。


C++的特性二:實現的重用

代碼重用是面向對象的程序語言最大的優點之一,但是重用性並不是想所希望的那樣容易達成,產生一個好的設計需要經驗和洞察力。重用一個類最簡單的方法就是直接使用這個類的對象,或者將這個類的對象放到新的類當中。

組合具有很大的靈活性。因爲繼承在面向對象的程序設計中很重要,所以它通常得到高度的重視,並且新的程序員在任何地方都想到繼承的方法,這會造成笨拙的複雜設計。實際上,當創建新類的時候,程序員應該首先考慮組合,因爲它更簡單,更靈活。採用組合的方法,設計將變得清晰,而且一旦我們掌握了組合的經驗之後,就明顯的知道什麼時候應該採用繼承。


C++特性之三:重用接口

對象本身是一個很方便的工具,當我們克服了很多困難創建了一個類,在之後需要創建一個具有類似功能的類的時候我們就可以選取已存在的類,克隆它,然後再修改,則是再好不過的事情。實際上,使用面向對象的設計,人們的困難之一在於從開始到結束過於簡單,一個習慣於尋找複雜解的訓練有素的大腦,往往會被問題的簡單性所難住。當我們從已經存在的類繼承的時候,我們就創建了一個新的類型,這個類型包含所有被繼承類的屬性和方法。


C++特性之四:接口的重載

雖然繼承可以繼承基類的所有屬性以及方法,但是派生類還是有一些區別於基類的屬性,C++中提供改變基類函數方法的行爲,“重載”,從而使派生類具有不同行爲屬性。當然添加屬性的方法可以使重載,也可以是直接定義新的函數接口。


C++特性之五:多態性

首先來定義兩個概念:“早捆綁”和“晚捆綁”。早捆綁指編譯器會對特定的函數名產生的調用,而連接器會將這個調用解析爲所執行代碼的絕對地址。晚捆綁是指當給對象類型發送消息時,編譯器保證這個函數調用的存在,並執行函數參數和返回值得類型檢查,但是他並不知道執行的確切代碼。在C++中我們可以用virtual關鍵字來聲明某個函數具有晚捆綁的靈活性,其可以表示出相同家族中的類具有不同的行爲。


C++特性之六:對象的創建和銷燬

C++中把效率控制作爲首要原則,可以通過靜態或者動態的創建對象


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