Delphi程序設(shè)計(jì)與應(yīng)用教程:第三章Delphi中的面向?qū)ο骭第1頁
Delphi程序設(shè)計(jì)與應(yīng)用教程:第三章Delphi中的面向?qū)ο骭第2頁
Delphi程序設(shè)計(jì)與應(yīng)用教程:第三章Delphi中的面向?qū)ο骭第3頁
Delphi程序設(shè)計(jì)與應(yīng)用教程:第三章Delphi中的面向?qū)ο骭第4頁
Delphi程序設(shè)計(jì)與應(yīng)用教程:第三章Delphi中的面向?qū)ο骭第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

下載本章學(xué)習(xí)要點(diǎn)了解面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想及其ObjectPascal的語言實(shí)現(xiàn)。掌握類的定義和對(duì)象的使用掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的含義及定義掌握派生類的定義及繼承的意義理解多態(tài)性的概念及多態(tài)性的實(shí)現(xiàn):重載和虛方法(或動(dòng)態(tài)方法)理解Delphi中組件屬性和方法的含義

下載第三章Delphi中的面向?qū)ο?.1面向?qū)ο蟪绦蛟O(shè)計(jì)概述3.2類與對(duì)象3.3類成員的訪問權(quán)限3.4繼承3.5多態(tài)性3.6屬性與方法下載3.1面向?qū)ο蟪绦蛟O(shè)計(jì)概述

面向?qū)ο蟮姆椒▽W(xué)認(rèn)為:客觀世界由各種“對(duì)象”構(gòu)成,每個(gè)對(duì)象都有自己的運(yùn)行規(guī)律和內(nèi)部狀態(tài)。通過歸類,具有相同屬性和行為的對(duì)象抽象為類,每個(gè)對(duì)象都屬于某個(gè)類,都是該類的一個(gè)實(shí)例。類之間通過繼承關(guān)系構(gòu)成類的層次結(jié)構(gòu),子類可以直接繼承父類的性質(zhì)和功能。對(duì)象之間通過消息相互作用,相同的消息作用于不同的對(duì)象會(huì)產(chǎn)生不同的反應(yīng).面向?qū)ο蠓椒▽W(xué)的中心是圍繞著對(duì)象、類、消息、繼承性和多態(tài)性等概念、機(jī)制和原理展開的。其中,對(duì)象和類是面向?qū)ο蠓椒ǖ暮诵?,消息是連接它們的紐帶,封裝是面向?qū)ο蟮幕疽兀^承性是面向?qū)ο蠓椒ǖ莫?dú)特貢獻(xiàn),而多態(tài)性則使面向?qū)ο蠓椒ǜ油昝馈O螺d3.2類與對(duì)象一、類與對(duì)象的概念二、定義類三、對(duì)象的使用四、構(gòu)造函數(shù)與析構(gòu)函數(shù)下載一、類與對(duì)象的概念類(class)是具有相同或相似屬性和行為的一組對(duì)象的共同描述,是對(duì)相似對(duì)象建立的模板(template)。它是一個(gè)抽象的概念,每個(gè)對(duì)象則是一個(gè)有意義的實(shí)體。對(duì)象(object)由屬性和方法構(gòu)成。屬性是描述對(duì)象靜態(tài)特征的一組數(shù)據(jù)項(xiàng);方法描述了該類對(duì)象動(dòng)態(tài)特征的一個(gè)操作序列,體現(xiàn)對(duì)象的行為特征或功能。下載二、定義類在ObjectPascal中,使用保留字class定義類,定義格式如下:type類名=class數(shù)據(jù)成員成員函數(shù)或過程end;說明:數(shù)據(jù)成員可以是任何數(shù)據(jù)類型的變量,描述類的狀態(tài)特征,即屬性。不能在類中對(duì)數(shù)據(jù)成員進(jìn)行初始化。成員函數(shù)或過程描述類的行為特征,即方法。成員函數(shù)或過程必須在類體以外定義,格式如下:function類名.成員函數(shù)名(參數(shù)表):返回類型;{函數(shù)體}procedure類名.成員過程名(參數(shù)表);{過程體}下載三、對(duì)象的使用1.對(duì)象聲明var對(duì)象名:類名;對(duì)象名的命名規(guī)則和其他標(biāo)識(shí)符相同。例如:varc1:Circle;//對(duì)象p:^Circle;//指針a:array[1..10]ofCircle;//數(shù)組2.訪問對(duì)象成員聲明了對(duì)象后,就可以通過對(duì)象使用類中的成員。使用類成員的一般格式為:對(duì)象名.成員3.類作用域類作用域在類體范圍內(nèi),此外,成員函數(shù)體或成員過程體也屬于類體的一部分,在類的作用域內(nèi)。下載四、構(gòu)造函數(shù)與析構(gòu)函數(shù)由類說明一個(gè)對(duì)象后,系統(tǒng)并沒有實(shí)際創(chuàng)建該類的對(duì)象,只是定義了一個(gè)指向該類對(duì)象的指針。為此,ObjectPascal提供了構(gòu)造函數(shù),它是專用的創(chuàng)建對(duì)象和初始化對(duì)象的成員函數(shù)。由于構(gòu)造函數(shù)是專用的成員函數(shù),因此,在定義時(shí)不使用保留字function,而使用保留字constructor,函數(shù)名通常為Create。ObjectPascal允許用戶自定義一個(gè)或多個(gè)構(gòu)造函數(shù),自定義的構(gòu)造函數(shù)可以帶參數(shù)。若在定義類時(shí)沒有定義構(gòu)造函數(shù),則系統(tǒng)會(huì)自動(dòng)為該類生成一個(gè)默認(rèn)的構(gòu)造函數(shù)。

析構(gòu)函數(shù)的功能正好和構(gòu)造函數(shù)相反,它是專用的刪除對(duì)象和為對(duì)象進(jìn)行善后處理的成員函數(shù)。在定義析構(gòu)函數(shù)時(shí)同樣不使用保留字function,而是使用保留字destructor,函數(shù)名通常為Destroy。ObjectPascal允許用戶自定義一個(gè)或多個(gè)析構(gòu)函數(shù)。若在類定義時(shí)沒有定義析構(gòu)函數(shù),則系統(tǒng)會(huì)自動(dòng)為該類生成一個(gè)默認(rèn)的析構(gòu)函數(shù)。下載3.3類成員的訪問權(quán)限一、封裝二、類成員的訪問權(quán)限

下載一、封裝在程序設(shè)計(jì)中,封裝(encapsulation)就是把一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)的操作集合組裝在一起,形成一個(gè)能動(dòng)的實(shí)體,也就是對(duì)象。這樣的封裝體包括外部特征和內(nèi)部實(shí)現(xiàn)兩個(gè)方面,用戶不必知道對(duì)象的內(nèi)部實(shí)現(xiàn),只需根據(jù)對(duì)象提供的外部特性接口訪問對(duì)象。下載二、類成員的訪問權(quán)限在ObjectPascal中,類的所有成員都有一個(gè)標(biāo)明其可見性的屬性,由保留字private、protected、public、published或automated來說明。通過這些保留字,可以控制對(duì)類中成員的訪問權(quán)限。Private:具有private訪問權(quán)限的成員稱為私有成員,不能被類所在單元以外的程序訪問,但在本單元是可見的。Protected:具有protected訪問權(quán)限的成員稱為保護(hù)成員,可以被該類及該類的所有派生類訪問,并成為派生類的私有成員。Public:具有public訪問權(quán)限的成員稱為公有成員,可以被該類以外的類訪問。如果兩個(gè)類不在一個(gè)單元文件中,則要在uses語句中加入被訪問的類所在的單元名稱。Published:具有published訪問權(quán)限的成員稱為公布類型成員,它除了與公有成員具有相同的訪問權(quán)限以外,在設(shè)計(jì)期間的對(duì)象觀察器窗口中也是可見的。Automated:具有automated訪問權(quán)限的成員稱為自動(dòng)類型成員,它與公有成員具有相同的訪問權(quán)限,常用于響應(yīng)對(duì)象鏈接與嵌入(簡稱OLE)自動(dòng)化類型信息的公用接口。類定義的完整格式如下:type類名=classprivate私有數(shù)據(jù)成員、成員函數(shù)或過程protected保護(hù)數(shù)據(jù)成員、成員函數(shù)或過程public公有數(shù)據(jù)成員、成員函數(shù)或過程published公布類型數(shù)據(jù)成員、成員函數(shù)或過程automated自動(dòng)類型數(shù)據(jù)成員、成員函數(shù)或過程end;在類說明中,訪問權(quán)限聲明的出現(xiàn)次序和次數(shù)可以是任意的。每遇到一個(gè)訪問權(quán)限聲明,編譯器就將其后成員的訪問權(quán)限確定為該保留字所規(guī)定的訪問權(quán)限,直到遇到下一個(gè)訪問權(quán)限聲明為止。下載3.4繼承一、繼承的概念及意義二、派生類的定義及使用三、派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)下載一、繼承的概念及意義繼承的實(shí)質(zhì)就是在既有類的基礎(chǔ)上構(gòu)造新的類,即新類從一個(gè)或多個(gè)已有的類中繼承數(shù)據(jù)和方法,同時(shí)增加或重新定義數(shù)據(jù)和方法,由此構(gòu)造出一個(gè)新的類型,稱為派生類(或子類),那些已有的類則稱為基類(或父類)。

繼承的主要目的是實(shí)現(xiàn)代碼的重用。下載二、派生類的定義及使用派生類的定義格式為:type

派生類=class(基類){派生類新增或改寫部分}end;下載三、派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)在ObjectPascal中,在派生類的構(gòu)造函數(shù)的開始部分,使用inherited保留字來調(diào)用基類的構(gòu)造函數(shù),首先初始化基類的成員,然后構(gòu)造派生類的特有成員。在派生類的析構(gòu)函數(shù)的結(jié)尾部分,使用inherited保留字來調(diào)用基類的析構(gòu)函數(shù),最后釋放基類的成員部分。下載3.5多態(tài)性一、多態(tài)性的概念二、重載三、虛方法

四、抽象方法與抽象類五、類引用及類型信息運(yùn)算符

下載一、多態(tài)性的概念在面向?qū)ο蟪绦蛟O(shè)計(jì)中,多態(tài)性是指相同的操作,在不同類的對(duì)象中具體的實(shí)現(xiàn)過程不同。ObjectPascal支持兩種多態(tài)性:編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性通過重載實(shí)現(xiàn),運(yùn)行時(shí)的多態(tài)性通過虛方法來實(shí)現(xiàn)。下載二、重載在面向?qū)ο蟪绦蛟O(shè)計(jì)中,重載的含義是相同名字的函數(shù)或過程,在不同的場(chǎng)合可以表現(xiàn)出不同的行為,也就是說,可以同時(shí)定義多個(gè)具有相同名字的函數(shù)或過程,而它們的操作對(duì)象具有不同的類型。重載函數(shù)或過程用保留字overload來說明。下載三、虛方法方法調(diào)用中,在運(yùn)行時(shí)才確定對(duì)象方法的調(diào)用地址,這種調(diào)用方法叫動(dòng)態(tài)聯(lián)編。動(dòng)態(tài)聯(lián)編通過虛方法來實(shí)現(xiàn),虛方法使用指令字virtual說明。重載參數(shù)個(gè)數(shù)和類型完全相同的方法時(shí)使用保留字override,而不使用保留字overload。

動(dòng)態(tài)聯(lián)編除可以通過虛方法實(shí)現(xiàn)外,還可以通過動(dòng)態(tài)方法實(shí)現(xiàn),動(dòng)態(tài)方法使用指令字dynamic。虛方法和動(dòng)態(tài)方法在功能上是等價(jià)的,它們的不同在于:虛方法的調(diào)用速度比較快,而動(dòng)態(tài)方法的代碼數(shù)量比較少。下載四、抽象方法與抽象類在定義虛方法或動(dòng)態(tài)方法時(shí),使用指令字abstract說明,則該方法成為抽象方法,包含抽象方法的類稱為抽象類。抽象方法不可以定義函數(shù)體,且必須是虛方法或動(dòng)態(tài)方法。下載五、類引用及類型信息運(yùn)算符1.類引用

類引用(classreference)是一種數(shù)據(jù)類型,是類的類型引用。其定義格式如下:TypeRT=classofT;其中,T為已經(jīng)定義的類,RT定義為T類的引用類型。

2.類型信息運(yùn)算符類型信息運(yùn)算符是在程序運(yùn)行期間,用來進(jìn)行類型信息檢測(cè)和類型轉(zhuǎn)換的運(yùn)算符。is運(yùn)算符is運(yùn)算符的表達(dá)式格式為:對(duì)象名is類名表達(dá)式的作用是判別某對(duì)象是否是某個(gè)類的一個(gè)實(shí)例。如果該對(duì)象是某類的一個(gè)實(shí)例,則運(yùn)算結(jié)果為True,否則結(jié)果為False。as運(yùn)算符as運(yùn)算符的表達(dá)式格式為:對(duì)象名

as類名表達(dá)式的作用是返回一個(gè)指定類的對(duì)象引用。該對(duì)象原所屬必須與引用類兼容,或者為空(nil)。通??梢韵扔胕s運(yùn)算先檢測(cè)其與引用類的兼容性。下載3.6屬性與方法一、屬性二、方法下載一、屬性在Delphi中,組件的屬性可以看成是對(duì)類中數(shù)據(jù)進(jìn)行訪問和修改的特殊的輔助域。當(dāng)然,在Delphi中,我們并不需要了解屬性是如何實(shí)現(xiàn)的,我們只要通過ObjectInspect窗口就可以設(shè)置組件的屬性值了。

下載二、方法方

溫馨提示

  • 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)論