《寫給大家看的面向對象編程書》讀書筆記【含思維導圖】


內容簡介

《寫給大家看的面向對象編程書(第3版)》是一部獨具特色的面向對象技術著作。書中結合代碼示例生動透徹地講述了面向對象思想的精髓,讓讀者真正學會以對象方式進行思考。此外,《寫給大家看的面向對象編程書(第3版)》還討論了各種與面向對象概念密切相關的應用主題,包括XML、UML建模語言、持久存儲、分布式計算和客戶/服務器技術等。《寫給大家看的面向對象編程書(第3版)》內容精煉,示例簡單明了,適合各層次面向對象開發人員閱讀,也是高校相關專業面向對象課程的理想教學參考書。

閱讀完整理了幾張思維導圖,可以幫助理解整個OO設計各個概念之間的關系

 

其他零碎的一些筆記,某些概念附帶超鏈接

1.OO和過程式程序設計的區別:OO設計中,屬性和行為都包含在一個對象中(稱為封裝),而在過程式程序設計(結構化設計)中,屬性和行為是分開的。

2.OO設計術語中,數據稱為屬性,行為稱為方法

3.獲取方法設置方法提供了對對象的數據的一種受控訪問,獲取方法和設置方法有時分別稱為訪問方法和修改方法。

4.類是對象的模板。當創建一個對象時,稱為對象被實例化。必須在創建對象前先設計類。

5.類的數據由屬性表示。每個類必須定義屬性來存儲由這個類實例化的各個對象的狀態。

6.要實現數據隱藏,所有屬性都應當聲明為private。在大多數OO語言中,接口中的方法都指定為public

7.超類(或父類或基類)包含繼承自該類的所有子類(或派生類)共同的屬性和行為。

8.在大多數OO語言中,一個類只能有一個父類——單重繼承。有些語言(如C++)則允許一個類有多個父類——多重繼承

9.初始化順序①對象的初始化順序:先靜態成員,再非靜態成員,再構造方法;②繼承中構造方法的調用順序: 先父類,再子類。

10.如果一個子類從超類繼承了一個抽象方法,它就必須為這個方法提供具體實現。

11.a.構造函數constructor)指一個與其所在類同名的方法,且該方法沒有提供任何返回類型。構造函數是類的入口點,對象由此構建。構造函數非常適合完成初始化new關鍵字用於類的實例化並分配所需的內存。

Cabbies myCabbie = new Cabbie();

b.初始化是構造函數完成的一個常見功能。如果沒有為Cabbie類提供一個構造函數,就會自動插入以下默認構造函數

public Cabbie()

{

super();

}

c.如果類中有屬性,好的實踐往往是在構造函數中初始化這些屬性。

d. 使用多個構造函數(重載方法):利用函數不同的簽名。簽名 =方法名 + 參數列表

public String getRecord(int key)

e. 超類如何構造:①調用該類超類的構造函數;②初始化對象的各個類屬性;③執行構造函數中的其余代碼

12.實現細節對用戶是隱藏的。實現的任何部分可以改變而不影響類的用戶接口。接口包含調用一個方法以及返回一個值的語法。如果這個接口沒有改變,用戶就不關心實現是否發生了改變。

13.對象持久性object persistence)指保存對象的狀態,從而可以在以后恢復並使用。方案①,將對象保存到平面文件(使用專有的串行化技術或者使用可以跨多個平台和語言的XML模型);方案②,寫至關系數據庫。

14.OO設計的目標是設計抽象、高度可重用的類。

15.盡可能為用戶提供最小接口。確定最終的接口是一個迭代的過程。

16.異常粒度:可以捕獲不同粒度的異常。可以捕獲所有異常也可以只檢查某些異常。

17.this:關鍵字是當前對象的一個引用,而super:表示當前對象父類對象的引用 。

18.靜態屬性:為該屬性分配一段內存用於由這個類實例化的所有對象,該屬性由該類的所有對象共享。這有些接近全局數據的概念。

19.操作符重載operator overloading)可以改變一個操作符的含義,如"+"可以用作加號,也可以用作字符串拼接。大多數OO語言並不允許操作符重載。

20.a.繼承組合存在的最主要原因可能就是對象重用。繼承——is-a關系;組合——has-a關系。

b.繼承是子類使用父類的方法,而多態則是父類使用子類的方法。重載、重寫、繼承、多態的區別

Triangle tri = new Triangle(); //繼承

Shape shape = new Triangle(); //多態

c.重載是在一個類里一系列名字相同參數不同的方法,而重寫(override)是指子類的實現替代父類中的實現,繼承后重新實現父類的方法。

d.Object類在Java.Net環境下是所有類的基類。

21.每個新的繼承關系都會為繼承方法的使用建立一個新的上下文。需要為每一個這樣的上下文考慮一個完整的測試策略——測試新的代碼。

22.創建可重用代碼的一種方法就是創建框架。框架的思想圍繞着即插即用和重用原則。可以用接口和抽象類來創建框架。

23.契約contract):要求開發人員遵守應用編程接口規范所需的機制。在.Net中,實現契約兩種方法:抽象類和接口。

24.繼承是一種嚴格的is-a關系,但接口不是。接口可以跨多個類。

25.a.XMLextensible markup language)是不同系統之間定義和傳輸數據的一種標准機制,面向對象數據定義語言

b.HTML表示數據,XML描述數據(格式化數據),還可以用CSS輔助格式化數據(側重於顯示的樣式)。與HTML相比,XML提供了合法性檢查——DTDDocument Type Definition)。為了能夠驗證文檔使得XML文檔更為健壯,需要在DTD中定義用來描述數據的標記。

26.含有抽象方法的類必然是抽象類,而抽象類的方法不一定都是抽象方法。抽象類不能被實例化。抽象類不能是密封的或靜態的,抽象類被子類繼承並實現它的方法。

只有虛方法或靜態方法可以被重寫,抽象方法可以看成是沒有實現體的虛方法。基類的抽象方法需要子類去實現,而虛方法已經在基類中實現,子類是否選擇覆蓋基類方法取決於子類的需求。抽象方法和虛方法的區別

27.面向對象的三大特征:①封裝:保證對象自身數據的完整性、安全性;②繼承:建立類之間的關系,實現代碼復用、方便系統的擴展;③多態:相同的方法調用可實現不同的實現方式。面向對象的多態性

28.密封類是類的一種,用sealed修飾,不能用作基類。因此,它也不能是抽象類。密封類主要用於防止派生。

29.訪問修飾符

---------------------------THE END--------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM