面向?qū)ο蠹夹g(shù)的概念與方法(共11頁)_第1頁
面向?qū)ο蠹夹g(shù)的概念與方法(共11頁)_第2頁
面向?qū)ο蠹夹g(shù)的概念與方法(共11頁)_第3頁
面向?qū)ο蠹夹g(shù)的概念與方法(共11頁)_第4頁
面向?qū)ο蠹夹g(shù)的概念與方法(共11頁)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上面向?qū)ο蠹夹g(shù)的概念與方法1 面向?qū)ο蟮幕靖拍?#160;本節(jié)著重介紹面向?qū)ο蟮幕靖拍?,也?duì)相應(yīng)的面向?qū)ο蟮募夹g(shù)方法的一些基本概念和方法做些說明和解釋。  1.1  面向?qū)ο蠓椒▽W(xué)的基本原則  面向?qū)ο蠓椒▽W(xué)認(rèn)為:客觀世界是由各種“對(duì)象”所組成的,任何事物都是對(duì)象,每一個(gè)對(duì)象都有自己的運(yùn)動(dòng)規(guī)律和內(nèi)部狀態(tài),每一個(gè)對(duì)象都屬于某個(gè)對(duì)象“類”,都是該對(duì)象類的一個(gè)元素。復(fù)雜的對(duì)象可以是由相對(duì)比較簡單的各種對(duì)象以某種方式組成的。不同對(duì)象的相互作用就構(gòu)成了我們要研究、分析和構(gòu)造的客觀系統(tǒng)。 面向?qū)ο蠓椒▽W(xué)認(rèn)為:通過類比,

2、發(fā)現(xiàn)對(duì)象間的相似性,即對(duì)象間的共同屬性,這就是構(gòu)成對(duì)象類的根據(jù)。 面向?qū)ο蠓椒▽W(xué)認(rèn)為:對(duì)于已分成類的各個(gè)對(duì)象,可以通過定義一組“方法”來說明該對(duì)象的功能,也即是:允許作用于該對(duì)象上的各種操作。對(duì)象間的相互聯(lián)系是通過傳遞“消息”來完成的。 面向?qū)ο蠓椒▽W(xué)比較自然地模擬了人類認(rèn)識(shí)客觀世界的方法。即應(yīng)使描述問題的問題空間和解決問題的方法空間在結(jié)構(gòu)上盡可能地一致。我們分析、設(shè)計(jì)和實(shí)現(xiàn)一個(gè)系統(tǒng)的方法盡可能接近我們認(rèn)識(shí)一個(gè)系統(tǒng)的方法。   1.2 對(duì)象  面向?qū)ο蠹夹g(shù)是基于對(duì)象概念的。在現(xiàn)代漢語詞典中,對(duì)象是行動(dòng)或思考時(shí)作為目

3、標(biāo)的人或事物。 在思維科學(xué)中,對(duì)象是客觀世界中具有可區(qū)分性的、能夠唯一標(biāo)識(shí)的邏輯單元。對(duì)象所代表的本體可能是一個(gè)物理存在,也可能是一個(gè)概念存在。  “面向?qū)ο蟆笔怯?jì)算機(jī)科學(xué)中的一個(gè)技術(shù)名詞,具有其特定的技術(shù)含義。從面向?qū)ο蟮挠^點(diǎn)來看,現(xiàn)實(shí)世界是由各式各樣獨(dú)立的、異步的、并發(fā)的實(shí)體對(duì)象組成,每個(gè)對(duì)象都有各自的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律,不同對(duì)象之間或某類對(duì)象之間的相互聯(lián)系和作用,就構(gòu)成了各式不同的系統(tǒng)。    面向?qū)ο蠓椒ㄊ腔诳陀^世界的對(duì)象模型化的軟件開發(fā)方法。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,所謂對(duì)象,就是一個(gè)屬性集及其操作的封裝體。作為計(jì)算

4、機(jī)模擬真實(shí)世界的抽象,一個(gè)對(duì)象就是一個(gè)實(shí)際問題論域,一個(gè)物理的實(shí)體或邏輯的實(shí)體。在計(jì)算機(jī)程序中,可視為一個(gè)“基本程序模塊”,因?yàn)樗藬?shù)據(jù)結(jié)構(gòu)和所提供的相關(guān)操作功能。  我們把客觀世界的實(shí)體稱之為問題空間的對(duì)象,任何事物都是對(duì)象。我們用計(jì)算機(jī)解題是借助某種語言規(guī)定對(duì)計(jì)算機(jī)實(shí)體施加某種動(dòng)作,以此動(dòng)作的結(jié)果去映射解,我們把計(jì)算機(jī)實(shí)體稱之解空間的對(duì)象。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,“對(duì)象”是系統(tǒng)中的基本運(yùn)行實(shí)體。即對(duì)象是具有特殊屬性(數(shù)據(jù))和行為方式(方法)的實(shí)體。 從動(dòng)態(tài)的觀點(diǎn)看,對(duì)象的操作就是對(duì)象的行為。問題空間對(duì)象的行為是極其豐富的,而解空間對(duì)象的行為是極其死板的。因

5、此,只有借助于極其復(fù)雜的算法才能操縱解空間對(duì)象而得到解。面向?qū)ο笳Z言提供了“對(duì)象”概念,這樣,程序員就可以定義解空間對(duì)象。從存儲(chǔ)的角度來看,“對(duì)象”是一片私有存儲(chǔ),其中有數(shù)據(jù)也有方法。其它對(duì)象的方法不能直接操縱該對(duì)象的私有數(shù)據(jù),只有對(duì)象私有的方法才可以操縱它。從對(duì)象的實(shí)現(xiàn)來看,“對(duì)象”是一臺(tái)自動(dòng)機(jī),其中私有數(shù)據(jù)表示了對(duì)象的狀態(tài),該狀態(tài)只能由私有的方法改變它。每當(dāng)需要改變對(duì)象的狀態(tài)時(shí),只能由其它對(duì)象向該對(duì)象發(fā)送消息,對(duì)象響應(yīng)消息后按照消息模式找出匹配的方法,并執(zhí)行該方法。   對(duì)象的屬性是指描述對(duì)象的數(shù)據(jù),可以是系統(tǒng)或用戶定義的數(shù)據(jù)類型,也可以是一個(gè)抽象的數(shù)據(jù)類型,

6、對(duì)象屬性值的集合稱為對(duì)象的狀態(tài)。 對(duì)象的行為是定義在對(duì)象屬性上的一組操作方法的集合。方法是響應(yīng)消息而完成的算法,表示對(duì)象內(nèi)部實(shí)現(xiàn)的細(xì)節(jié),對(duì)象的方法集合體現(xiàn)了對(duì)象的行為能力。 對(duì)象的屬性和行為是對(duì)象定義的組成要素,有人把它們統(tǒng)稱為對(duì)象的特性。一般具有以下特征: (1)具有一個(gè)狀態(tài),由與相關(guān)聯(lián)的屬性值集合所表征。(2)具有唯一標(biāo)識(shí)名,可以區(qū)別于其他對(duì)象。 (3)有一組操作方法,每個(gè)操作決定對(duì)象的一種行為。 (4)對(duì)象的狀態(tài)只能被自身的行為所改變。 (5)對(duì)象的操作包括自操作和它操作 (6)對(duì)象之間以消息傳遞的方式進(jìn)行通信。

7、60;(7)一個(gè)對(duì)象的成員仍可以是一個(gè)對(duì)象。 其中,前3 條是對(duì)象的基本特征,后4條是屬于特征的進(jìn)一步定義說明。  有的書上又這樣寫關(guān)于對(duì)象的特征:(1)模塊性:一個(gè)對(duì)象是一個(gè)可以獨(dú)立存在的實(shí)體。從外部看這個(gè)模塊,只了解這個(gè)模塊具有哪些功能,模塊的內(nèi)部狀態(tài)以及如何實(shí)現(xiàn)這些功能的細(xì)節(jié)都是“隱蔽”在??斓膬?nèi)部的。(2)繼承性和類比性:人們是通過對(duì)客觀世界中的各種對(duì)象進(jìn)行分類及合并等方法來認(rèn)識(shí)世界的,每個(gè)具體的對(duì)象都是在它所屬的某一類對(duì)象(類)的層次結(jié)構(gòu)中占據(jù)一定的位置。下一層次的對(duì)象繼承了上一層次對(duì)象的某些屬性。另一方面,不同的對(duì)象具有某些相同的屬性時(shí),也常

8、常把它們歸并成一類。(3)動(dòng)態(tài)連接性:我們把對(duì)象和對(duì)象間所具有的統(tǒng)一、方便、動(dòng)態(tài)地連接和傳遞消息的能力與機(jī)制稱之為動(dòng)態(tài)連接性。(4)易維護(hù)性:在面向?qū)ο笙到y(tǒng)中,人們的注意力集中于具有相同特性的一類對(duì)象,抽象出這樣一類對(duì)象共同的結(jié)構(gòu)和行為,進(jìn)行一般描述,從而避免數(shù)據(jù)的冗余?!拔镆灶惥邸?,分類、類比、類型、同類,等等,是人們歸納客觀事物的方法。1.3 類類是對(duì)象的抽象及描述,是具有共同屬性和操作的多個(gè)對(duì)象的相似特性的統(tǒng)一描述體。類也是對(duì)象,是一種集合對(duì)象,稱之為對(duì)象類,簡稱為類,以有別于基本的實(shí)例對(duì)象。 在類的描述中,每個(gè)類要有一個(gè)名字,要表示一組對(duì)象的共同特征,還必須給出一個(gè)生成對(duì)象實(shí)

9、例的具體方法。類中的每個(gè)對(duì)象都是該類的對(duì)象實(shí)例,即系統(tǒng)運(yùn)行時(shí)通過類定義屬性初始化可以生成該類的對(duì)象實(shí)例。實(shí)例對(duì)象是描述數(shù)據(jù)結(jié)構(gòu),每個(gè)對(duì)象都保存其自己的內(nèi)部狀態(tài),一個(gè)類的各個(gè)實(shí)例對(duì)象都能理解該所屬類發(fā)來的消息。類提供了完整的解決特定問題的能力,因?yàn)轭惷枋隽藬?shù)據(jù)結(jié)構(gòu)(對(duì)象屬性)、算法(方法)和外部接口(消息協(xié)議)。類由方法和數(shù)據(jù)組成,它是關(guān)于對(duì)象性質(zhì)的描述,包括外部特性和內(nèi)部實(shí)現(xiàn)兩個(gè)方面。類通過描述消息模式及其相應(yīng)的處理能力來定義對(duì)象的外部特性,通過描述內(nèi)部狀態(tài)的表現(xiàn)形式及固有處理能力的實(shí)現(xiàn)來定義對(duì)象的內(nèi)部實(shí)現(xiàn)。一個(gè)類實(shí)際上定義的是一種對(duì)象類型,它描述了屬于該類型的所有對(duì)象的性質(zhì)。對(duì)象是在執(zhí)行過程

10、中由其所屬的類動(dòng)態(tài)生成的,一個(gè)類可以生成多個(gè)不同的對(duì)象。同一個(gè)類的對(duì)象具有相同的性質(zhì)。一個(gè)對(duì)象的內(nèi)部狀態(tài)只能由其自身來修改。因此,同一個(gè)類的對(duì)象雖然在內(nèi)部狀態(tài)的表現(xiàn)形式上相同,但可有不同的內(nèi)部狀態(tài)。從理論上講,類是一個(gè)抽象數(shù)據(jù)類型的實(shí)現(xiàn)。一個(gè)類的上層可以有超類,下層可以有子類,形成一種類層次結(jié)構(gòu)。這種層次結(jié)構(gòu)的一個(gè)重要特點(diǎn)是繼承性,一個(gè)類繼承其超類的全部描述。這種繼承具有傳遞性。所以,一個(gè)類實(shí)際上繼承了層次結(jié)構(gòu)中在其上面的所有類的全部描述。因此,屬于某個(gè)類的對(duì)象除具有該類所描述的特性外,還具有層次結(jié)構(gòu)中該類上面所有類描述的全部特性。抽象類是一種不能建立實(shí)例的類。抽象類將有關(guān)的類組織在一起,提供

11、一個(gè)公共的根,其它的子類從這個(gè)根派生出來。抽象類刻畫了公共行為的特性并將著些特征傳給它的子類。通常一個(gè)抽象類只描述與這個(gè)類有關(guān)的操作接口,或是這些操作的部分實(shí)現(xiàn),完整的實(shí)現(xiàn)被留給一個(gè)或幾個(gè)子類。抽象類已為一個(gè)特定的選擇器集合定義了方法,并且有些方法服從某種語義,所以,抽象類的用途是用來定義一些協(xié)議或概念。綜上所述,類是一組對(duì)象的抽象,它將該種對(duì)象所具有的共同特征集中起來,由該種對(duì)象所共享。在系統(tǒng)構(gòu)成上,則形成了一個(gè)具有特定功能的模塊和一種代碼共享的手段。在一個(gè)有效率的面向?qū)ο笙到y(tǒng)中,是沒有完全孤立的對(duì)象的,對(duì)象的相互作用的模式是采用消息傳送來進(jìn)行的。 1.4 消息消息是面向?qū)ο笙到y(tǒng)中

12、實(shí)現(xiàn)對(duì)象間的通信和請(qǐng)求任務(wù)的操作。消息傳遞是系統(tǒng)構(gòu)成的基本元素,是程序運(yùn)行的基本處理活動(dòng)。 一個(gè)對(duì)象所能接受的消息及其所帶的參數(shù),構(gòu)成該對(duì)象的外部接口。對(duì)象接受它能識(shí)別的消息,并按照自己的方式來解釋和執(zhí)行。一個(gè)對(duì)象可以同時(shí)向多個(gè)對(duì)象發(fā)送消息,也可以接受多個(gè)對(duì)象發(fā)來的消息。消息只反映發(fā)送者的請(qǐng)求,由于消息的識(shí)別、解釋取決于接受者,因而同樣的消息在不同對(duì)象中可解釋成不同的行為。 對(duì)象間傳送的消息一般由三部分組成,即接受對(duì)象名、調(diào)用操作名和必要的參數(shù)。 在C+中,一個(gè)對(duì)象的可能消息集是在對(duì)象的類描述中說明,每個(gè)消息在類描述中由一個(gè)相應(yīng)的方法給出,即使用函數(shù)定義操作。向?qū)?/p>

13、象發(fā)送一個(gè)消息,就是引用一個(gè)方法的過程。實(shí)施對(duì)象的各種操作,就是訪問一個(gè)或多個(gè)在類對(duì)象中定義的方法。 消息協(xié)議是一個(gè)對(duì)象對(duì)外提供服務(wù)的規(guī)定格式說明,外界對(duì)象能夠并且只能向該對(duì)象發(fā)送協(xié)議中所提供的消息,請(qǐng)求該對(duì)象服務(wù)。在具體實(shí)現(xiàn)上,是將消息分為公有消息和私有消息,而協(xié)議則是一個(gè)對(duì)象所能接受的所有公有消息的集合。前面講過,對(duì)象間的相互聯(lián)系是通過傳遞消息來實(shí)現(xiàn)的。消息用來請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求,消息統(tǒng)一了數(shù)據(jù)流和控制流,程序的執(zhí)行是靠在對(duì)象間傳遞消息來完成的。發(fā)送消息的對(duì)象稱為發(fā)送者,接受消息的對(duì)象稱為接受者。消息中只包含發(fā)送者的要求,消息完全由接受者解釋,接受者獨(dú)立決定

14、采用什么方式完成所需的處理。一個(gè)對(duì)象能接受不同形式不同內(nèi)容的多個(gè)消息,相同形式的消息可以送往不同的對(duì)象,不同的對(duì)象對(duì)于形式相同的消息可以有不同的解釋,能夠做出不同的反映。對(duì)于傳來的消息,對(duì)象可以返回響應(yīng)的回答信息,但這種返回并不是必修的。消息的形式用消息模式刻畫,一個(gè)消息模式定義了一類消息,它可以對(duì)應(yīng)內(nèi)容不同的消息。對(duì)于同一消息模式的不同消息,同一個(gè)對(duì)象所做的解釋和處理都是相同的,只是處理的結(jié)果可能不同。對(duì)象固有處理能力按消息分類,一個(gè)消息模式定義對(duì)象的一種處理能力。所以,只要給出對(duì)象的所有消息模式及相應(yīng)于每一個(gè)模式的處理能力,也就定義了一個(gè)對(duì)象的外部特征。消息模式不僅定義了對(duì)象所能受理的消息

15、,而且還定義了對(duì)象的固有處理能力。  2方法把所有對(duì)象分成各種對(duì)象類,每個(gè)對(duì)象類都定義一組所謂的“方法”,它們實(shí)際上可視為允許作用于各對(duì)象上的各種操作。   2.1 封裝性 在上述面向?qū)ο蟮幕靖拍畹幕A(chǔ)上,將就所有面向?qū)ο蟪绦蛟O(shè)計(jì)都具有的3個(gè)共同特性進(jìn)行分析說明,使我們對(duì)面向?qū)ο蟮母拍詈驮砟軌蛴羞M(jìn)一步的認(rèn)識(shí)和理解封裝是一種信息隱蔽技術(shù),用戶只能見到對(duì)象封裝界面上的信息,對(duì)象內(nèi)部對(duì)用戶是隱蔽的。封裝的目的在于將對(duì)象的使用者和對(duì)象的設(shè)計(jì)者分開,使用者不必知道行為實(shí)現(xiàn)的細(xì)節(jié),只需用設(shè)計(jì)者提供的消息來訪問該對(duì)象。 封裝

16、性是面向?qū)ο缶哂械囊粋€(gè)基本特性,其目的是有效地實(shí)現(xiàn)信息隱藏原則。這是軟件設(shè)計(jì)模塊化、軟件復(fù)用和軟件維護(hù)的一個(gè)基礎(chǔ)。 封裝是一種機(jī)制,它將某些代碼和數(shù)據(jù)鏈接起來,形成一個(gè)自包含的黑盒子(即產(chǎn)生一個(gè)對(duì)象)。一般地講,封裝的定義為: (1)一個(gè)清晰的邊界,所有的對(duì)象的內(nèi)部軟件的范圍被限定在這個(gè)邊界內(nèi)。封裝的基本單位是對(duì)象; (2)一個(gè)接口,這個(gè)接口描述描述該對(duì)象與其他對(duì)象之間的相互作用; (3)受保護(hù)的內(nèi)部實(shí)現(xiàn),提供對(duì)象的相應(yīng)的軟件功能細(xì)節(jié),且實(shí)現(xiàn)細(xì)節(jié)不能在定義該對(duì)象的類之外。 面向?qū)ο蟾拍畹闹匾饬x在于,它提供了較為令人滿意的軟件構(gòu)造的封裝和組織方

17、法:以類/對(duì)象為中心,既滿足了用戶要求的模塊原則和標(biāo)準(zhǔn),又滿足代碼復(fù)用要求??陀^世界的問題論域及具體成分,在面向?qū)ο笙到y(tǒng)中,最終只表現(xiàn)為一系列的類/對(duì)象。 對(duì)象的組成成員中含有私有部分、保護(hù)部分和公有部分,公有部分為私有部分提供了一個(gè)可以控制的接口。也就是說,在強(qiáng)調(diào)對(duì)象的封裝性時(shí),也必須允許對(duì)象有不同程序的可見性。可見性是指對(duì)象的屬性和服務(wù)允許對(duì)象外部存取和引用的程度。 面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)鼓勵(lì)人們把問題論域分解成幾個(gè)相互關(guān)聯(lián)的子問題,每個(gè)子類都是一個(gè)自包含對(duì)象。一個(gè)子類可以繼承父類的屬性和方法,還可以擁有自己的屬性和方法,子類也能將其特性傳遞給自己的下一級(jí)子類,這種對(duì)象的

18、封裝、分類層次和繼承概念,與人們?cè)趯?duì)真實(shí)世界認(rèn)識(shí)的抽象思維中運(yùn)用聚合和概括相一致。面向?qū)ο蟮恼Z言以對(duì)象協(xié)議或規(guī)格說明作為對(duì)象的外界面。協(xié)議指明該對(duì)象所接受的消息,在對(duì)象的內(nèi)部,每個(gè)消息響應(yīng)一個(gè)方法,方法實(shí)施對(duì)數(shù)據(jù)的運(yùn)算。對(duì)數(shù)據(jù)方法的描述是協(xié)議的實(shí)現(xiàn)部分或叫類體。顯式地將對(duì)象的定義和對(duì)象的實(shí)現(xiàn)分開是面向?qū)ο笙到y(tǒng)的一大特色。封裝本身即模塊性,把定義模塊和實(shí)現(xiàn)模塊分開,就使得用面向?qū)ο蠹夹g(shù)所開發(fā)設(shè)計(jì)的軟件的維護(hù)性、修改性在為改善。2.2 繼承性  繼承性是面向?qū)ο蠹夹g(shù)中的另一個(gè)重要概念和特性,它體現(xiàn)了現(xiàn)實(shí)中對(duì)象之間的獨(dú)特關(guān)系。既然類是對(duì)具體對(duì)象的抽象,那么就可以有不同級(jí)別的抽象,

19、就會(huì)形成類的層次關(guān)系。若用結(jié)點(diǎn)表示類對(duì)象,用連接兩結(jié)點(diǎn)的無向邊表示其概括關(guān)系,就可用樹形圖表示類對(duì)象的層次關(guān)系。繼承關(guān)系可分為以下幾種:一代或多代繼承、單繼承和多繼承。子類僅對(duì)單個(gè)直接父類的繼承叫做單繼承。子類對(duì)多于一個(gè)的直接父類的繼承叫多繼承。就繼承風(fēng)格而言,還有全部繼承、部分繼承,等等。一般的面向?qū)ο笙到y(tǒng),在不同程度上支持如下四種類型的繼承: (1)替代繼承,如果能夠?qū)︻怲的對(duì)象比類E的對(duì)象實(shí)施更多的操作,就說類T繼承類E,即在類E的對(duì)象處能夠用類T的對(duì)象來替代。這種繼承是基于方法而非值。 (2)包含繼承,如果類T的每個(gè)對(duì)象也是類E的對(duì)象,則說類T是類E的子對(duì)象。這種繼

20、承是基于結(jié)構(gòu)而非操作。 (3)限制繼承,如果類E包括滿足某種已知限定條件的類T的所有對(duì)象,則類T是類E的一個(gè)子類。這是包含繼承的特殊情形。 (4)特化繼承,如果類E的對(duì)象是類T的對(duì)象,而T帶有更多特殊信息,則類T是類E的子類。繼承性允許程序設(shè)計(jì)人員在設(shè)計(jì)新類時(shí),只須考慮與父類所不同的特性部分,而繼承父類的內(nèi)容為自己的組成部分。如果父類中某些行為不適用于子類,則程序設(shè)計(jì)人員可在子類中重寫方法的實(shí)現(xiàn)。因此繼承機(jī)制不僅除去基于層次聯(lián)系的類的共性的重復(fù)說明,提高代碼復(fù)用率,而且能使開發(fā)者的大部分精力用于系統(tǒng)中新的或特殊的部分設(shè)計(jì),便于軟件的演進(jìn)和增量式擴(kuò)充。繼承性是自動(dòng)的共享類、子

21、類和對(duì)象中的方法和數(shù)據(jù)的機(jī)制。每個(gè)對(duì)象都是某個(gè)類的實(shí)例,一個(gè)系統(tǒng)中類對(duì)象是各自封閉的。如果沒有繼承機(jī)制,則類對(duì)象中數(shù)據(jù)和方法就可能出現(xiàn)大量的重復(fù)。繼承性是實(shí)現(xiàn)從可重用成分構(gòu)造軟件系統(tǒng)的最有效的特征,它不僅支持系統(tǒng)的可重用性,而且還促進(jìn)系統(tǒng)的可擴(kuò)充性。2.3 多態(tài)性  面向?qū)ο蠹夹g(shù)的第3個(gè)特性是多態(tài)性。多態(tài)性原意是指一種具有多種形態(tài)有事物,這里是指同一消息為不同的對(duì)象所接受時(shí),可導(dǎo)致不同的行為。多態(tài)性支持“同一接口,多種方法”,使重要算法只寫一次而在低層可多次復(fù)用。面向?qū)ο蟮亩喾N多態(tài)性方法的使用,如動(dòng)態(tài)綁定、重載等,提高了程序設(shè)計(jì)的靈活性和效率。所謂多態(tài)即一名字可具有多種語義

22、。在面向?qū)ο蟮恼Z言中,多態(tài)引用表示可引用多個(gè)類的實(shí)例。由于多態(tài)具有可表示對(duì)象的多個(gè)類的能力,因而,它既與動(dòng)態(tài)類型有關(guān)又與靜態(tài)類型有關(guān)。  在C+中,利用多態(tài)性概念,使用函數(shù)名和參數(shù)類別來實(shí)現(xiàn)功能重載,即使用不同參數(shù)就可以使之同各個(gè)對(duì)象相結(jié)合,分別實(shí)現(xiàn)相應(yīng)的任務(wù)。  3常用術(shù)語簡釋和定義 從面向?qū)ο蠓椒▽W(xué)原理出發(fā),對(duì)上述的有關(guān)術(shù)語可以進(jìn)一步地做如下的簡要釋義: 信息:是對(duì)事物的一種表示和描述。 軟件:是描述信息處理的信息。 對(duì)象:是一個(gè)由信息及有關(guān)對(duì)它進(jìn)行處理的描述所組成的包。 對(duì)象可以定義如下:OBJ:=

23、<ID,MS,DS,MI>。其中ID是對(duì)象標(biāo)識(shí)或名稱;DS是屬性數(shù)據(jù);MS是對(duì)象受理的操作集合(方法);MI是對(duì)象處理的消息集。 消息:是對(duì)某種對(duì)象處理的說明。消息可以定義為MSG:=<MN,ARG>。其中MN是消息名;ARG是變?cè)M。 類:是對(duì)一個(gè)或幾個(gè)相似對(duì)象的描述;類可以定義為一個(gè)四元組: CLS:=<ID,INH,DD,OP,ITF>其中,ID是類的標(biāo)識(shí)或稱為名字;INH是類的繼承性描述;DD是屬性數(shù)據(jù);OP是操作集合,即方法集;ITF是統(tǒng)一的對(duì)外接口或協(xié)議。 繼承是類的特性,即子類可以繼承父類的特性??捎靡粋€(gè)偏序關(guān)系定

24、義繼承的特性:INH=<C,>=)。其中,C為處于繼承鏈上所有的類,>=表示繼承關(guān)系 繼承是有傳遞性的,即IF(C2,>=C1)&(C3>=C2) THEN C3>=C1 。在對(duì)繼承作了以上定義后,還可以對(duì)類作重新的定義。類n:=<類n的ID,類i本身的數(shù)據(jù)結(jié)構(gòu)描述,類i本身的操作實(shí)現(xiàn),類i本身的對(duì)外接口>(i=1,2,n)。其中類1到類n是屬于同一類鏈的,且,類i繼承類i+1的特性。  元類:當(dāng)某個(gè)類的單個(gè)實(shí)例本身就是一個(gè)類時(shí),這個(gè)類就稱為元類。 子類:是在共享其他類

25、的描述后,再對(duì)這個(gè)描述做某些修改而構(gòu)成的類。 實(shí)例:是被某個(gè)類所描述的對(duì)象中的一個(gè)具體對(duì)象。對(duì)象實(shí)例可以定義為一個(gè)三元組: OB:=<OID,ODY,CID>。其中,OID是對(duì)象名或標(biāo)識(shí);ODY是對(duì)象實(shí)例的描述;CID是對(duì)象所屬類的標(biāo)識(shí)。 方法:是關(guān)于對(duì)象在接受到消息后所采取的一系列操作的描述,是對(duì)象對(duì)消息的響應(yīng)。 方法字典:是消息選擇符和方法之間的一個(gè)相聯(lián)集合。 面向?qū)ο蠓椒ǎ?#160;是一種運(yùn)用對(duì)象、類、消息傳遞、繼承、封裝、聚合、多態(tài)性等概念來構(gòu)造軟件系統(tǒng)的軟件開發(fā)方法。  4概念內(nèi)涵的區(qū)別 在面向?qū)ο蟮?/p>

26、基本概念中,有兩對(duì)表達(dá)形式相似而內(nèi)涵不同的術(shù)語,在此也做一些比較和說明。 類型:在面向?qū)ο笙到y(tǒng)中,類型概括了具有相同特性的一組對(duì)象的特征,是抽象數(shù)據(jù)類型的概念。它由接口和實(shí)現(xiàn)兩部分組成,接口對(duì)用戶是可見的,而實(shí)現(xiàn)部分只有設(shè)計(jì)人員可見。接口部分包括一組操作及用法說明,實(shí)現(xiàn)部分?jǐn)?shù)據(jù)(是對(duì)象內(nèi)部結(jié)構(gòu)的描述)和操作(實(shí)現(xiàn)接口部分的過程)。C+等系統(tǒng)是支持類型概念的。 類:類的說明與類型相同,但概念上有所不同,類以方法表現(xiàn)出其動(dòng)態(tài)性,并且包含了“對(duì)象生成器”和“對(duì)象存儲(chǔ)器”的概念。 “類型”在常規(guī)程序設(shè)計(jì)語言中的作用主要體現(xiàn)在數(shù)據(jù)描述上,作為保證程序正確性檢查和提高程序效率的工具。而類的作用在于作為模擬手段,以統(tǒng)一的方式構(gòu)造現(xiàn)實(shí)世界模型,因而提高屬于系統(tǒng)的最高層,并且可在運(yùn)行時(shí)刻操作。 關(guān)于消息傳遞和過程調(diào)用,形式上相似,但有3點(diǎn)本質(zhì)不同: (1)消息傳遞必須給出關(guān)于通道信息,即要顯示地指明接受方,而過程調(diào)用的信道則是隱含的,其適用范圍取決于變?cè)?#160;(2)消息傳遞接受方是一實(shí)體,具有保持狀態(tài)的能力,而過程調(diào)用則沒有此要求; (3)消息傳遞可以是異步的,因而是并發(fā)的,過程調(diào)用的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論