軟體構造 第三章 第四節 OOP程式設計

2021-08-20 22:18:02 字數 1114 閱讀 8734

1.oo(物件導向)的標準

(1)使用class作為中心原則

(2)具有靜態型別

(3)支援泛型

(4)支援多型

(5)支援繼承

(6)支援動態繫結/分派

2.基本概念:物件,類,屬性,方法

(1)隊象:模擬真是世界中具有狀態和表現的物體

(2)類:每個物件都有乙個類,類定義了實現過程和型別,類中的方法就是api

(3)例項方法和靜態方法的比較:例項方法必須繫結在乙個具體的物件上才能使用,而靜態方法不需要

3.介面

(1)介面的屬性:a. inte***ce和class是用來定義和實現adt的 b. 介面之間可以繼承 c. 乙個類可以實現多個介面

(2)乙個介面可以有多個實現

(3)介面實現了客戶端與implementation之間的解耦

(4)介面與類的比較:介面是用來確定adt規約的,而類是用來實現adt規約的

4.資訊封裝和資訊隱藏

5.繼承和重寫:重寫的時候不要改變原來方法的意思

6.多型、子型別、過載

(1)三種型別的多型

特殊多型:也就是功能過載

引數化多型:改變引數型別

子型別多型、包含多型

(2)ad hoc polymorphism(特殊多型):其實就是利用過載某個方法實現

過載(必須改變引數列表):多個方法具有相同的名字,但有不同的引數列表或返回值型別;它是一種靜態的多型,而override是一種動態的多型

(3)引數化多型和泛型

泛型介面有兩種實現方式:第一種,泛型介面+非泛型的實現類;第二種,泛型介面+泛型的實現類

萬用字元只有在使用泛型的時候才能出現,在定義中不能出現

(4)子型別多型:不同型別的物件可以統一的處理而無需區分

子型別的規約不能弱化超型別的規約

7.動態分派:在執行階段選擇多型操作中哪個實現類中的方法被選擇的過程

繫結:將呼叫的名字與實際的方法聯絡起來;分派:據台將執行哪個方法

動態分派是對靜態分派不能解決的一些問題的處理,建立在對靜態繫結完全信任的基礎上

如果編譯階段不知道型別,則一定是動態分派(override是動態分派,也叫動態繫結;overload是early binding)

作業系統第三章第四節

作業系統第三章第四節 產生死鎖的原因和必要條件 1.關於死鎖 指多個程序在執行過程中,因爭奪資源而造成的一種僵局。當程序處於這種狀態時,若無外力作用,它們都將無法再向前推進。死鎖 deadlock 指程序之間無休止地互相等待 飢餓 starvation 指乙個程序無休止地等待 產生死鎖的原因可歸結為...

Lua manual翻譯 第三章第三 四節

因為受到經濟危機的影響,我在 bokee.com 的部落格可能隨時出現無法訪問的情況 因此將2005年到2006年間在 bokee.com 撰寫的部落格文章全部遷移到 csdn 部落格中來,本文正是其中一篇遷移的文章。lua提供了如下的基礎堆疊操作api void lua settop lua st...

Lua manual翻譯 第三章第三 四節

因為受到經濟危機的影響,我在 bokee.com 的部落格可能隨時出現無法訪問的情況 因此將2005年到2006年間在 bokee.com 撰寫的部落格文章全部遷移到 csdn 部落格中來,本文正是其中一篇遷移的文章。lua提供了如下的基礎堆疊操作api void lua settop lua st...