1.1 抽象過程:
1.1.1 程式設計師必須建立起在機器模型(位於「解空間」內,這是你對問題建模的地方,例如計算機)和實際待解問題的模型(位於「問題空間」內,這是問題存在的地方,例如一項業務)之間的關聯。
1.1.2 我們將問題空間中的元素及其在解空間中的表示稱為「物件」。這種思想的實質是:程式可以通過新增新型別的物件使自身適用於某個特定問題。如果要對現實世界中的物件作模擬,那麼說它們都具有特性和行為似乎不錯。
1.1.3 五個基本特性:
(1)萬物皆為物件。
(2)程式是物件的集合,它們通過傳送訊息來告知彼此所要做的。可以把訊息想象為對某個特定物件的方法的呼叫請求。
(3)每個物件都有自己的由其他物件所構成的儲存。可以通過建立包含現有物件的包的方式來建立新型別的物件。
(4)每個物件都擁有其型別。「每個物件都是某個類(class)的乙個例項(instance)」。每個類最重要的區別於其他類的特性就是「可以傳送什麼樣的訊息給它」。
(5)某一特定型別的所有物件都可以接收同樣的訊息。因為「圓形」型別的物件同時也是「幾何形」型別的物件,所以乙個「圓形」物件必定能夠接受傳送給「幾何形」物件的訊息。這意味著可以編寫與「幾何形」互動並自動處理所有與幾何形性質相關的事物的**。這種可替代性是oop中最強有力的概念之一。
1.1.4 物件更為簡潔的描述:物件具有狀態、行為和標識。這意味著每乙個物件都可以擁有內部資料(它們給出了該物件的狀態)和方法(它們產生行為),並且每乙個物件都可以唯一的與其他物件區分開來,具體來說,就是每乙個物件在記憶體中都有乙個唯一的位址。(解釋:因為物件可以存在於不同的機器和位址空間中,它們還可以被儲存在硬碟上,在這些情況下,物件的標識就必須由記憶體位址之外的某些東西來確定了。)
1.2 每個物件都有乙個介面
1.2.1 建立抽象資料型別是物件導向程式設計的基本概念之一。每乙個物件都屬於定義了特性和行為的某個特定的類。
1.2.2 因為類描述了具有相同特性(資料元素)和行為(功能)的物件集合,所以乙個類實際上就是乙個資料型別。可以根據需求,通過新增新的資料型別來擴充套件程式語言。
1.3 每個物件都提供服務
1.3.1 將物件看做是服務提供者有乙個附帶的好處:它有助於提高物件的內聚性。高內聚是軟體設計的基本質量要求之一。每個物件都可以很好的完成一項任務,但是它並不試圖做更多的事。
1.4 被隱藏的具體實現
第一章 物件導論
所有程式語言都提供抽象機制。人們所能夠解決的問題的複雜性直接取決於抽象的型別和質量 物件導向程式設計允許根據問題來描述問題,而不是根據執行解決方案的計算機來描述問題。物件導向程式設計的五個基本特性,這些特性表現了一種純粹的物件導向程式設計方式 總結 這 一小節首先介紹了類的思想 物件導向程式設計語言...
第一章 物件導論
public表示其後的元素對任何人都是可用的 private出了型別的建立者和內部方法之外任何人都不能訪問的元素 protect於private相當,差別在於繼承的類可以訪問protected型別,但是不能訪問逇private。預設許可權 比較容易忽視 包訪問許可權,因為在這種許可權下,類可以訪問在...
第一章物件導論
1.1抽象過程 所有程式語言都提供抽象機制。物件導向程式設計方式 1.萬物皆物件。可以將物件視作乙個特殊的變數,如 類class a 建立類和建立變數是一樣的,a a 建立物件a int i 建立變數i 同時,也可以用類來描述物品或其它抽象的東西,例如 class 長方體 double 長 doub...