**角度:從概念上將各式各樣的資料和功能封裝到了一起
體系角度:物化
向目標物件發訊息
或發請求
:就是呼叫目標物件的目標方法,例如向light型別(燈型別)的物件lt(燈物件)傳送開燈訊息:lt.on()
light lt =
newlight()
;lt.on(
);// 向lt物件傳送開燈訊息:發訊息或發請求
內部資料型別的設計思想:防止程式設計師接觸他們不該接觸的東西
也許類建立者修改類的內部結構,而不必擔心這些修改會對已有的程式造成什麼影響:例如將類的內部結構進行修改,用到該類的地方都要跟著修改,那就是一場災難!將介面與實現進行分離
,介面不變,實現改變,已有的程式只需要重新鏈結一下即可,不需要進行**的修改
直接使用類建立物件
:那麼對這個類要求很高,要求類建立者具有較多的經驗與洞察力
繼承
:本質就是對已有類的擴充套件extends
,子物件中包含了乙個父物件
組合
:將乙個類的物件置於新類。靈活性強:將新類的成員物件
設定為private
,那麼使用該類的客戶程式設計師就不能訪問他們,那麼可以在不干擾客戶**的前提下,從容的修改那些成員物件
,甚至可以在執行時
動態的改變這些成員物件
。這種靈活性是繼承
不具備的(因為編譯器必須對通過繼承
建立的類加以限制)
目標:利用現成的資料型別,對其進行轉殖
,再根據情況進行新增和修改,得到新的資料型別(繼承並不是完全等於轉殖
)
父類:
子類:
實現:通過extends
關鍵字實現的,子類中包含了父類所有的成員(儘管父類的private成員被父類隱藏起來了且不能訪問,但的確被子類繼承下來了,只是不能訪問而已)。更為重要的是子類複製了父類的介面:可以像父類物件傳送的訊息同樣可以傳送給子類物件
介面:這裡的介面可以理解為父類的public的方法,以供外部呼叫
is-a
:子類繼承父類,子類與父類具有完全相同的介面(public的方法),子類並沒有新添自己的方法。在這種情況下,可以理想的將子類物件替換成父類物件
is-like-a
:子類繼承父類,子類與父類具有完全相同的介面(public的方法),子類新添自己的方法,即新型別擁有了舊型別的介面,但還包含了其他方法,所以他們不是完全等價的。
Chapter01簡單工廠模式
一 uml類圖 物件導向程式設計時,在整理物件之間關係時,用uml類圖梳理,會更加清晰。簡單工廠模式,利用乙個工廠來生產不同型別的物件,達到服務層 根據需求更改時,客戶端 介面不用進行修改。客戶端可直接建立自己新增的需求物件並進行操作。由於比較簡單,見 很容易理解,故不做贅述。定義基礎操作類 ifn...
Chapter 01 穿越時空的迷霧
編譯器的效率包括兩個方面 執行效率 的執行速度 和編譯效率 產生可執行 的速度 執行效率起決定性作用 ken thompson在pdp 11上重新用組合語言實現了unix,dr創立了能夠同時解決多種資料型別和效率的 new b 語言 c 採用編譯模式而不是解釋模式,並引入型別系統,每個變數在使用前必...
C 入門(7) 物件
類 屬性 方法 類名的第乙個字母一般採用大寫,類宣告的末尾必須加上分號 c 允許在類裡宣告常量,但不允許對它賦值,除非建立乙個靜態常量。構造器 1 構造器的名字和它所在類的名字一樣 2 系統會在建立出某個新例項之後,立刻自動呼叫這個類的構造器 3 構造器永遠不返回任何值。如果沒有在類裡定義乙個構造器...