面向?qū)ο蠹夹g(shù)概述_第1頁(yè)
面向?qū)ο蠹夹g(shù)概述_第2頁(yè)
面向?qū)ο蠹夹g(shù)概述_第3頁(yè)
面向?qū)ο蠹夹g(shù)概述_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蠹夹g(shù)概述第 1第 1 章面向?qū)ο蠹夹g(shù)概述1.1 知 識(shí) 要 點(diǎn)1面向?qū)ο蠹夹g(shù)的基本概念面向?qū)ο蠹夹g(shù)是以對(duì)象為基礎(chǔ)、以事件或者消息來(lái)驅(qū)動(dòng)對(duì)象執(zhí)行處理的程序設(shè)計(jì)技術(shù)。對(duì)象是包含客觀事物特征的抽象實(shí)體,是屬性和行為的封裝體。在程序設(shè)計(jì)領(lǐng)域,可以用“對(duì)象=數(shù)據(jù)+作用于這些數(shù)據(jù)上的操作”這一公式來(lái)表達(dá)。類是對(duì)具有相同屬性和行為的一組對(duì)象的抽象描述。事件是系統(tǒng)產(chǎn)生的動(dòng)作或是運(yùn)行應(yīng)用程序產(chǎn)生的動(dòng)作。事件通過(guò)消息描述,消息是描述事件發(fā)生的信息。消息是對(duì)象間交互的手段,是要求某個(gè)對(duì)象執(zhí)行某個(gè)操作的規(guī)格說(shuō)明。2面向?qū)ο蠹夹g(shù)的基本特征抽象性是指忽略事物中與當(dāng)前目標(biāo)無(wú)關(guān)的非本質(zhì)特征,而強(qiáng)調(diào)本質(zhì)特征的特征。封裝

2、性是指把對(duì)象的屬性和行為封裝在一起,并盡可能隱藏對(duì)象的內(nèi)部細(xì)節(jié)的 特征。繼承性是指特殊類的對(duì)象擁有其一般類的屬性和行為的類與類之間層次關(guān)系的特征。多態(tài)性是指不同對(duì)象收到相同消息時(shí)可以產(chǎn)生多種不同的行為方式的特征?!局攸c(diǎn)】面向?qū)ο蠹夹g(shù)的概念。類與對(duì)象的概念及關(guān)系。面向?qū)ο笈c面向過(guò)程程序設(shè)計(jì)的區(qū)別。面向?qū)ο蠹夹g(shù)的基本特征。【難點(diǎn)】類與對(duì)象的概念。面向?qū)ο笈c面向過(guò)程程序設(shè)計(jì)的區(qū)別。面向?qū)ο蠹夹g(shù)的基本特征。1.2 習(xí) 題 解 答1什么是面向?qū)ο蠹夹g(shù)?【問(wèn)題解答】面向?qū)ο蠹夹g(shù)是一種以對(duì)象為基礎(chǔ),以事件或消息來(lái)驅(qū)動(dòng)對(duì)象執(zhí)行處理的程序設(shè)計(jì)技術(shù)。它具有抽象性、封裝性、繼承性及多態(tài)性。2面向?qū)ο笈c面向過(guò)程程序設(shè)

3、計(jì)有什么不同?【問(wèn)題解答】面向?qū)ο笈c面向過(guò)程程序設(shè)計(jì)有如下不同:(1)面向過(guò)程程序設(shè)計(jì)方法采用函數(shù)(或過(guò)程)來(lái)描述對(duì)數(shù)據(jù)的操作,但又將函數(shù)與其操作的數(shù)據(jù)分離開(kāi)來(lái);面向?qū)ο蟪绦蛟O(shè)計(jì)方法將數(shù)據(jù)和對(duì)數(shù)據(jù)的操作封裝在一起,作為一個(gè)整體來(lái)處理。(2)面向過(guò)程程序設(shè)計(jì)方法以功能為中心來(lái)設(shè)計(jì)功能模塊,難于維護(hù);而面向?qū)ο蟪绦蛟O(shè)計(jì)方法以數(shù)據(jù)為中心來(lái)描述系統(tǒng),數(shù)據(jù)相對(duì)于功能而言具有較強(qiáng)的穩(wěn)定性,因此更易于維護(hù)。(3)面向過(guò)程程序的控制流程由程序中預(yù)定順序來(lái)決定;面向?qū)ο蟪绦虻目刂屏鞒逃蛇\(yùn)行時(shí)各種事件的實(shí)際發(fā)生來(lái)觸發(fā),而不再由預(yù)定順序來(lái)決定,更符合實(shí)際需要。(4)面向?qū)ο蟪绦蛟O(shè)計(jì)方法可以利用框架產(chǎn)品(如MFC,M

4、icrosoft Foundation Classes)進(jìn)行編程。3面向?qū)ο蠹夹g(shù)有哪些優(yōu)點(diǎn)?【問(wèn)題解答】面向?qū)ο蠹夹g(shù)具有程序結(jié)構(gòu)清晰,自動(dòng)生成程序框架,實(shí)現(xiàn)簡(jiǎn)單,可有效地減少程序的維護(hù)工作量,代碼重用率高,軟件開(kāi)發(fā)效率高等優(yōu)點(diǎn)。4面向?qū)ο蠹夹g(shù)中的封裝性有何優(yōu)缺點(diǎn)?如何克服這些缺點(diǎn)?【問(wèn)題解答】封裝將對(duì)象有關(guān)的數(shù)據(jù)和行為封裝成整體來(lái)處理,使得對(duì)象以外的部分不能隨意存取對(duì)象的內(nèi)部屬性,從而有效地避免了外部錯(cuò)誤對(duì)它的影響,大大減小了查錯(cuò)和排錯(cuò)的難度。另一方面,當(dāng)進(jìn)行修改對(duì)象內(nèi)部時(shí),由于只有少量的外部接口對(duì)外提供服務(wù),因此同樣減小了內(nèi)部的修改對(duì)外部的影響。如果一味地強(qiáng)調(diào)封裝,對(duì)象的任何屬性都不允許外部

5、直接存取,則要增加許多沒(méi)有其他意義、只負(fù)責(zé)讀或?qū)懙男袨?。這會(huì)為編程工作增加負(fù)擔(dān),增加運(yùn)行開(kāi)銷,并且使程序顯得臃腫。為了避免這一點(diǎn),在程序的具體實(shí)現(xiàn)過(guò)程中應(yīng)使對(duì)象有不同程度的可見(jiàn)性,進(jìn)而與客觀世界的具體情況相符合。5為什么要應(yīng)用繼承機(jī)制?【問(wèn)題解答】客觀事物既有共性,也有特性。如果只考慮事物的共性,而不考慮事物的特性,就不能反映出客觀世界中事物之間的層次關(guān)系。抽象機(jī)制是考慮事物的共性,繼承機(jī)制是考慮事物的特性,這樣才能完整地描述客觀世界的層次關(guān)系。繼承能使軟件模塊具有可重用性、獨(dú)立性,縮短軟件開(kāi)發(fā)周期,提高軟件開(kāi)發(fā)效率,同時(shí)使軟件易于維護(hù)。6C+對(duì)多態(tài)性的支持體現(xiàn)在哪些方面?【問(wèn)題解答】C+的多

6、態(tài)性分為編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)。編譯時(shí)多態(tài)是指在程序的編譯階段由編譯系統(tǒng)根據(jù)參數(shù)確定與哪個(gè)同名的函數(shù)相聯(lián)系;運(yùn)行時(shí)多態(tài)是指在程序的運(yùn)行階段才根據(jù)產(chǎn)生的信息確定需要調(diào)用哪個(gè)同名的函數(shù)。C+通過(guò)函數(shù)重載和運(yùn)算符重載實(shí)現(xiàn)編譯時(shí)多態(tài),通過(guò)繼承和虛函數(shù)來(lái)實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)。7目前常用的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言有何異同?【問(wèn)題解答】目前常用的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言有C+、Java、Visual Basic等。C+是混合型面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,繼承并改進(jìn)了C語(yǔ)言,是一種既支持面向?qū)ο笥种С置嫦蜻^(guò)程的程序設(shè)計(jì)方法。Java是純面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,從C+發(fā)展而來(lái)。C+和Java均支持面向?qū)ο蠹夹g(shù)的基本概念和基本特征,如

7、封裝、類、構(gòu)造函數(shù)、析構(gòu)函數(shù)、繼承、多 態(tài)等。C+與Java語(yǔ)法描述有相同之處,也有不同之處。如基本結(jié)構(gòu)語(yǔ)句的語(yǔ)法大致相同,而類定義的語(yǔ)法等方面則不相同。此外還有以下不同:(1)C+有運(yùn)算符重載機(jī)制,而Java沒(méi)有此特性;(2)C+支持多重繼承,而Java只支持單重繼承;(3)C+通過(guò)構(gòu)造函數(shù)創(chuàng)建對(duì)象,可以直接使用指針來(lái)操作對(duì)象的成員,而Java通過(guò)new運(yùn)算符創(chuàng)建對(duì)象,通過(guò)new運(yùn)算符返回的對(duì)象引用來(lái)使用對(duì)象,而不是直接操作指針;(4)C+程序要顯式地釋放所分配的內(nèi)存,而Java具有內(nèi)存垃圾收集機(jī)制,自動(dòng)管理內(nèi)存,不需要顯式釋放所分配的內(nèi)存。Visual Basic繼承了BASIC語(yǔ)言所具有

8、的語(yǔ)法簡(jiǎn)單、容易學(xué)習(xí)、容易使用、數(shù)據(jù)處理能力強(qiáng)的特點(diǎn),又引入了面向?qū)ο蟆⑹录?qū)動(dòng)的編程機(jī)制和可視化程序設(shè)計(jì)方法,大大降低了開(kāi)發(fā)Windows應(yīng)用程序的難度,有效地提高了應(yīng)用程序開(kāi)發(fā)的效率。但是,Visual Basic存在語(yǔ)法不嚴(yán)格、開(kāi)發(fā)出的系統(tǒng)穩(wěn)定性較低的缺點(diǎn)。相對(duì)C+來(lái)說(shuō),Visual Basic面向系統(tǒng)底層的編程能力有限。8什么是.NET?【問(wèn)題解答】.NET是一種面向網(wǎng)絡(luò)、支持各種用戶終端的開(kāi)發(fā)平臺(tái)。它定義了一種公用語(yǔ)言子集(Common Language Subset,CLS),為符合其規(guī)范的語(yǔ)言與類庫(kù)之間提供無(wú)縫集成的混合語(yǔ)言。.NET統(tǒng)一了編程類庫(kù),提供了對(duì)下一代網(wǎng)絡(luò)通信標(biāo)準(zhǔn)可擴(kuò)展標(biāo)記語(yǔ)言(eXtensib

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論