第三章 面向?qū)ο蠹夹g(shù)_第1頁(yè)
第三章 面向?qū)ο蠹夹g(shù)_第2頁(yè)
第三章 面向?qū)ο蠹夹g(shù)_第3頁(yè)
第三章 面向?qū)ο蠹夹g(shù)_第4頁(yè)
第三章 面向?qū)ο蠹夹g(shù)_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章面向?qū)ο蠹夹g(shù)第一頁(yè),共六十九頁(yè),編輯于2023年,星期四面向?qū)ο螅∣bjectOriented)的基本概念什么是對(duì)象(Object)?什么是類(lèi)(Class)類(lèi)和對(duì)象區(qū)別與聯(lián)系第二頁(yè),共六十九頁(yè),編輯于2023年,星期四什么是對(duì)象?“對(duì)象”是事物對(duì)象有一個(gè)身份,該身份用屬性定義對(duì)象還可以做事情,對(duì)象所能做的事情稱為對(duì)象的行為對(duì)象可以是真實(shí)世界的事物,也可以是概念性的事物第三頁(yè),共六十九頁(yè),編輯于2023年,星期四什么是類(lèi)將事物分類(lèi)進(jìn)行研究,是人類(lèi)常用的一種思維方式。類(lèi)通過(guò)設(shè)定該類(lèi)中每個(gè)對(duì)象將具有的屬性和行為來(lái)提供對(duì)象的定義。第四頁(yè),共六十九頁(yè),編輯于2023年,星期四類(lèi)和對(duì)象區(qū)別與聯(lián)系第五頁(yè),共六十九頁(yè),編輯于2023年,星期四對(duì)象之間的關(guān)系對(duì)象的三種基本關(guān)系(relationship)

依賴(dependency)關(guān)系

泛化(generalization繼承、父子)關(guān)系

關(guān)聯(lián)(association)關(guān)系

第六頁(yè),共六十九頁(yè),編輯于2023年,星期四依賴關(guān)系依賴(Dependency)是一種使用關(guān)系,它描述了一個(gè)對(duì)象的規(guī)格說(shuō)明的變化可能會(huì)影響到使用它的另一個(gè)對(duì)象,但反之不然。

第七頁(yè),共六十九頁(yè),編輯于2023年,星期四泛化關(guān)系天花病毒流感病毒SARS病毒病毒RNA復(fù)制侵害肌體傳染性疫苗泛化(Generalization)描述了一般對(duì)象和較特殊的對(duì)象之間的關(guān)系。第八頁(yè),共六十九頁(yè),編輯于2023年,星期四關(guān)聯(lián)關(guān)系關(guān)聯(lián)(Dependency)是一種結(jié)構(gòu)關(guān)系,它描述了一個(gè)對(duì)象與另一個(gè)對(duì)象相聯(lián)系

第九頁(yè),共六十九頁(yè),編輯于2023年,星期四面向?qū)ο笙到y(tǒng)的基本元素抽象(Abstraction)封裝(Encapsulation)繼承(Inheritance)多態(tài)(Polymorphism)第十頁(yè),共六十九頁(yè),編輯于2023年,星期四抽象(Abstraction)

過(guò)濾掉對(duì)象的一部分特性和操作直到只剩下你所需要的屬性和操作。

通過(guò)抽象,可以將精力集中在應(yīng)用程序?qū)ο笊隙皇菍?shí)現(xiàn)上。使用戶和領(lǐng)域?qū)<夷軌蛘嬲齾⑴c到設(shè)計(jì)中來(lái)——關(guān)注重點(diǎn)第十一頁(yè),共六十九頁(yè),編輯于2023年,星期四封裝(Encapsulation)當(dāng)一個(gè)對(duì)象執(zhí)行自己的操作時(shí),它對(duì)外界隱藏了操作的細(xì)節(jié)。接口(Interface)對(duì)象總要提供一個(gè)“接口”與外部世界建立聯(lián)系封裝通過(guò)隱藏對(duì)象的內(nèi)部實(shí)現(xiàn)來(lái)幫助抽象,即可以使用一個(gè)對(duì)象而不必理解對(duì)象類(lèi)是如何實(shí)現(xiàn)的——隱藏私有第十二頁(yè),共六十九頁(yè),編輯于2023年,星期四繼承(Inheritance)通過(guò)使用繼承性可以消除冗余屬性和行為并獲得再利用。兩類(lèi)基本的繼承:

實(shí)現(xiàn)繼承,屬于子類(lèi)的任意對(duì)象自動(dòng)再利用父類(lèi)的全部屬性和行為(VB6.0以下版本不支持)

接口繼承,提供了一個(gè)接口(屬性、行為)的再利用,允許這些屬性和行為以不同的方式實(shí)現(xiàn)(VB6.0支持)

——再利用第十三頁(yè),共六十九頁(yè),編輯于2023年,星期四多態(tài)(Polymorphism) 兩個(gè)或多個(gè)類(lèi)可以有名字相同、基本目的相同但實(shí)現(xiàn)方式不同的行為 VB6利用公共接口來(lái)實(shí)現(xiàn)多態(tài)——同名行為,不同實(shí)現(xiàn)第十四頁(yè),共六十九頁(yè),編輯于2023年,星期四思考對(duì)汽車(chē)思考面向?qū)ο蟮母拍?(抽象、封裝、繼承、多態(tài)各舉一例)考慮過(guò)去是如何分析和設(shè)計(jì)程序的,試著用對(duì)象和類(lèi)去具體化你的一個(gè)應(yīng)用程序考察在食堂打飯的過(guò)程(用飯卡),描述相關(guān)對(duì)象的屬性和行為,以及這些對(duì)象之間的關(guān)系第十五頁(yè),共六十九頁(yè),編輯于2023年,星期四VB6語(yǔ)言面向?qū)ο蟮奶卣鳎ㄒ唬┰陬?lèi)模塊中定義類(lèi)用Property過(guò)程提供公共訪問(wèn)定義多態(tài)性方法生成事件封裝類(lèi)常量用Object

Browser瀏覽類(lèi)創(chuàng)建對(duì)象第十六頁(yè),共六十九頁(yè),編輯于2023年,星期四VB6語(yǔ)言面向?qū)ο蟮奶卣鳎ǘ⒋绑w用作對(duì)象使用多組對(duì)象定義多個(gè)接口用ActiveX組件說(shuō)明對(duì)象開(kāi)發(fā)基于Web的應(yīng)用程序創(chuàng)建C/S應(yīng)用程序第十七頁(yè),共六十九頁(yè),編輯于2023年,星期四VB6中類(lèi)與集合的應(yīng)用創(chuàng)建一個(gè)類(lèi)使用一個(gè)類(lèi)的實(shí)例窗體類(lèi)的使用定義類(lèi)中的常量生成和響應(yīng)事件定義集合使用集合第十八頁(yè),共六十九頁(yè),編輯于2023年,星期四創(chuàng)建一個(gè)類(lèi)插入一個(gè)類(lèi)模塊定義類(lèi)的屬性創(chuàng)建類(lèi)的方法響應(yīng)類(lèi)事件文檔化類(lèi)第十九頁(yè),共六十九頁(yè),編輯于2023年,星期四插入一個(gè)類(lèi)模塊啟動(dòng)一個(gè)新的工程從工程菜單選擇添加類(lèi)模塊設(shè)定類(lèi)名稱窗體也是一個(gè)類(lèi)工具箱中的控件也是一個(gè)類(lèi)第二十頁(yè),共六十九頁(yè),編輯于2023年,星期四定義類(lèi)的屬性

類(lèi)屬性定義由一個(gè)類(lèi)創(chuàng)建的全部對(duì)象的屬性聲明一個(gè)公共變量 簡(jiǎn)單數(shù)據(jù)類(lèi)型(Integer、String)

抽象類(lèi)型(Object)

用戶定義的類(lèi)型(UDT)不能定義為公共變量 最簡(jiǎn)單,不推薦使用先聲明一個(gè)私有變量,然后創(chuàng)建Property過(guò)程以顯露屬性

Property過(guò)程允許一個(gè)類(lèi)中的屬性被聲明為私有變量并由公共過(guò)程顯露第二十一頁(yè),共六十九頁(yè),編輯于2023年,星期四創(chuàng)建Property(一)聲明一個(gè)私有變量

Privatemvar*

注意是Private而不是Dim

只有類(lèi)內(nèi)部的過(guò)程可以更改變量值,對(duì)應(yīng)用程序的其它部分隱藏創(chuàng)建Property過(guò)程

PropertyGet

獲取或讀入屬性值

PropertyLet設(shè)置String、Integer等簡(jiǎn)單數(shù)據(jù)類(lèi)型的屬性值

PropertySet

設(shè)置對(duì)象數(shù)據(jù)類(lèi)型的屬性值第二十二頁(yè),共六十九頁(yè),編輯于2023年,星期四創(chuàng)建Property(二)多數(shù)情況下,類(lèi)的每個(gè)屬性有一對(duì)Property過(guò)程PrivatemvarDescriptionAsStringPublicPropertyLetDescription(ByValvDataAsString) '向?qū)傩灾概芍禃r(shí)使用,位于賦值語(yǔ)句的左邊。 'Syntax:X.Description=5 mvarDescription=vDataEndPropertyPublicPropertyGetDescription()AsString '檢索屬性值時(shí)使用,位于賦值語(yǔ)句的右邊。 'Syntax:Debug.PrintX.Description Description=mvarDescriptionEndProperty第二十三頁(yè),共六十九頁(yè),編輯于2023年,星期四創(chuàng)建Property(二)只使用PropertyGet限制屬性為只讀只使用PropertyLet或PropertySet限制屬性為只寫(xiě)Property過(guò)程可以包含有效性驗(yàn)證、格式化或其它處理過(guò)程FriendPropertyLetPriority(ByValvDataAsInteger) ifvData<0orvData>4then vData=0

endif mvarPriority=vDataEndPropertyFriendPropertyGetPriority()AsInteger Priority=mvarPriorityEndProperty第二十四頁(yè),共六十九頁(yè),編輯于2023年,星期四使用Property的益處封裝 格式化、數(shù)據(jù)有效性或其它處理過(guò)程只讀維護(hù)

可以只更改Property過(guò)程的代碼而不更改使用該屬性的代碼第二十五頁(yè),共六十九頁(yè),編輯于2023年,星期四創(chuàng)建方法

類(lèi)方法定義由一個(gè)類(lèi)創(chuàng)建的全部對(duì)象的方法Private方法

在類(lèi)的內(nèi)部訪問(wèn)Public方法

在類(lèi)的外部訪問(wèn) 返回值Function

不返回值Sub類(lèi)方法按正常的Sub或Function過(guò)程實(shí)現(xiàn)第二十六頁(yè),共六十九頁(yè),編輯于2023年,星期四響應(yīng)事件兩個(gè)內(nèi)置響應(yīng)事件Initialize

提供了執(zhí)行由類(lèi)創(chuàng)建的對(duì)象初始化的機(jī)會(huì)Terminate

提供了執(zhí)行任何清除處理的場(chǎng)所第二十七頁(yè),共六十九頁(yè),編輯于2023年,星期四Initialize當(dāng)由一個(gè)類(lèi)創(chuàng)建對(duì)象時(shí),就觸發(fā)了Initialize事件,所以可用于是首批代碼的執(zhí)行PrivateSubClass_Initialize() ‘InitA為只讀屬性,將初始值設(shè)為1 mvarInitA=1 MsgBox"A的初始值"&InitAEndSub第二十八頁(yè),共六十九頁(yè),編輯于2023年,星期四Terminate當(dāng)釋放一個(gè)對(duì)象時(shí),觸發(fā)Terminate事件

可以向Terminate事件中添加代碼以解除與此對(duì)象相關(guān)聯(lián)的相關(guān)對(duì)象,或在對(duì)象被破壞時(shí)應(yīng)該執(zhí)行的過(guò)程PrivateSubClass_Terminate() MsgBox"對(duì)象被釋放"EndSub第二十九頁(yè),共六十九頁(yè),編輯于2023年,星期四文檔化類(lèi)從“工具”菜單中選擇“過(guò)程屬性”從“工程”菜單中選擇“添加文件”第三十頁(yè),共六十九頁(yè),編輯于2023年,星期四使用對(duì)象瀏覽器第三十一頁(yè),共六十九頁(yè),編輯于2023年,星期四創(chuàng)建和使用一個(gè)類(lèi)實(shí)例(對(duì)象)聲明對(duì)象變量創(chuàng)建對(duì)象使用對(duì)象屬性和方法釋放對(duì)象第三十二頁(yè),共六十九頁(yè),編輯于2023年,星期四聲明對(duì)象變量聲明一個(gè)數(shù)據(jù)類(lèi)型為對(duì)象類(lèi)的變量

Privatem_XqasCStudent使用New關(guān)鍵字聲明一個(gè)數(shù)據(jù)類(lèi)型為對(duì)象類(lèi)的變量

Privatem_XqasnewCStudent利用定義為對(duì)象的數(shù)據(jù)類(lèi)型去聲明一個(gè)變量

Privatem_XqasObject第三十三頁(yè),共六十九頁(yè),編輯于2023年,星期四創(chuàng)建對(duì)象通過(guò)使用帶有New關(guān)鍵字的Set語(yǔ)句顯式地創(chuàng)建對(duì)象

setm_Xq=newCStudent通過(guò)使用對(duì)象而隱式地創(chuàng)建對(duì)象

m_Xq.Study通過(guò)使用CreateObject函數(shù)創(chuàng)建對(duì)象第三十四頁(yè),共六十九頁(yè),編輯于2023年,星期四設(shè)定、獲取對(duì)象屬性舉例說(shuō)明第三十五頁(yè),共六十九頁(yè),編輯于2023年,星期四釋放對(duì)象的引用SetXobject=Nothing第三十六頁(yè),共六十九頁(yè),編輯于2023年,星期四定義類(lèi)中的常量避免幻數(shù)定義局部常量(Const)使用Enum語(yǔ)句(枚舉變量)定義全局長(zhǎng)整型常量定義字符串常量第三十七頁(yè),共六十九頁(yè),編輯于2023年,星期四集合集合提供了一種把一組相關(guān)的對(duì)象和一個(gè)“包含”它們的對(duì)象連接起來(lái)的方法集合本身是一個(gè)對(duì)象,并由類(lèi)來(lái)創(chuàng)建,該類(lèi)稱為集合類(lèi)通過(guò)將私有的集合對(duì)象包裝到類(lèi)模塊中,可實(shí)現(xiàn)部件的對(duì)象模型的集合,這樣就定義了一個(gè)集合類(lèi)第三十八頁(yè),共六十九頁(yè),編輯于2023年,星期四Collection

對(duì)象示例

聲明Collection對(duì)象Count屬性Add方法添加成員Remove方法刪除成員Item方法返回特定成員ForEach...Next枚舉集合舉例第三十九頁(yè),共六十九頁(yè),編輯于2023年,星期四在VB6.0中創(chuàng)建集合類(lèi)在類(lèi)模塊中定義類(lèi)(CStudents)創(chuàng)建集合對(duì)象實(shí)例向集合類(lèi)中添加屬性和方法使用集合類(lèi)第四十頁(yè),共六十九頁(yè),編輯于2023年,星期四創(chuàng)建集合對(duì)象實(shí)例PrivatemColStudentsAsCollectionPrivateSubClass_Initialize()'創(chuàng)建集合對(duì)象

SetmColStudents=NewCollectionEndSubPrivateSubClass_Terminate()SetmColStudents=NothingEndSub第四十一頁(yè),共六十九頁(yè),編輯于2023年,星期四集合類(lèi)中添加屬性和方法與Collection類(lèi)似,集合類(lèi)必須提供添加(Add)、刪除(Remove)成員以及返回(Item)特定成員的功能第四十二頁(yè),共六十九頁(yè),編輯于2023年,星期四Add方法PublicFunctionAdd(StudentNameAsString,SexAsInteger,OptionalsKeyAsString)AsStudent'創(chuàng)建新對(duì)象

DimobjNewMemberAsStudentSetobjNewMember=NewStudent'設(shè)置傳入方法的屬性

objNewMember.StudentName=StudentNameobjNewMember.Sex=SexIfLen(sKey)=0ThenmColStudents.AddobjNewMemberElsemColStudents.AddobjNewMember,sKeyEndIf'返回已創(chuàng)建的對(duì)象

SetAdd=objNewMemberSetobjNewMember=NothingEndFunction第四十三頁(yè),共六十九頁(yè),編輯于2023年,星期四Remove方法PublicSubRemove(vntIndexKeyAsVariant)'刪除集合中的元素時(shí)使用。

'vntIndexKey包含索引或關(guān)鍵字,這是為什么要聲明為

Variant的原因

'語(yǔ)法:x.Remove(xyz)mColStudents.RemovevntIndexKeyEndSub第四十四頁(yè),共六十九頁(yè),編輯于2023年,星期四Item方法PublicPropertyGetItem(vntIndexKeyAsVariant)AsCStudent'引用集合中的一個(gè)元素時(shí)使用。

'vntIndexKey

包含集合的索引或關(guān)鍵字,

'這是為什么要聲明為

Variant

的原因

'語(yǔ)法:Setfoo=x.Item(xyz)orSetfoo=x.Item(5)SetItem=mColStudents(vntIndexKey)EndProperty第四十五頁(yè),共六十九頁(yè),編輯于2023年,星期四使ForEach...Next

有效

‘NewEnum必須返回一個(gè)集合的枚舉算子的IUnknown接口。 PublicFunctionNewEnum()AsIUnknown SetNewEnum=mcolEmployees.[_NewEnum]EndFunction委派給Collection對(duì)象的最重要的東西是它的枚舉算子。枚舉算子是一個(gè)小對(duì)象,該對(duì)象知道如何遍歷集合中的各項(xiàng)。不能用VisualBasic來(lái)書(shū)寫(xiě)枚舉算子對(duì)象,因?yàn)镋mployees類(lèi)是基于Collection對(duì)象的,可以返回Collection對(duì)象的枚舉算子—它自然知道如何枚舉Collection對(duì)象所保存的各項(xiàng)。包圍Collection對(duì)象的_NewEnum方法的方括號(hào)是必要的,這是因?yàn)榉椒懊娴南聞澗€。前面的這個(gè)下劃線是一個(gè)約定,它指明該方法是隱藏在類(lèi)型庫(kù)中的。不能把自己的方法命名為_(kāi)NewEnum,但是可以把它隱藏在類(lèi)型庫(kù)中,并將ForEach...Next所需要的過(guò)程ID賦給它。第四十六頁(yè),共六十九頁(yè),編輯于2023年,星期四隱藏

NewEnum在“工具”菜單上,單擊“過(guò)程屬性”,打開(kāi)“過(guò)程屬性”對(duì)話框,在“名稱”框中,選擇NewEnum方法。

單擊“高級(jí)”,顯示一些高級(jí)功能。選中“隱藏該成員”,使NewEnum隱藏在類(lèi)型庫(kù)中。

在“過(guò)程標(biāo)識(shí)符”框中,鍵入-4,將ForEach...Next

所需要的過(guò)程標(biāo)識(shí)符賦給NewEnum。單擊“確定”。第四十七頁(yè),共六十九頁(yè),編輯于2023年,星期四其它PublicPropertyGetCount()AsLong'檢索集合中的元素?cái)?shù)時(shí)使用。語(yǔ)法:Debug.Printx.CountCount=mColStudents.CountEndPropertyPublicSubClear()SetmColStudents=NewCollectionEndSub第四十八頁(yè),共六十九頁(yè),編輯于2023年,星期四利用類(lèi)生成器構(gòu)建集合類(lèi)手工建立繁瑣首先利用類(lèi)生成器構(gòu)建類(lèi)然后利用類(lèi)生成器構(gòu)建集合類(lèi)第四十九頁(yè),共六十九頁(yè),編輯于2023年,星期四作業(yè)利用集合類(lèi)創(chuàng)建學(xué)生成績(jī)信息輸入程序,并成批保存到數(shù)據(jù)庫(kù)中第五十頁(yè),共六十九頁(yè),編輯于2023年,星期四接口接口就是一些屬性、方法和事件的集合單獨(dú)的Customer類(lèi)可以定義公共屬性和方法(復(fù)雜)將對(duì)象的功能分為被稱為接口的邏輯集一個(gè)例程隨后可以使用這些接口并確保它只使用該接口正確的屬性和方法SendToSendFromMessageSendDeleteFaxNumberTransmitPhoneNumberCallNameAddressBuyIDefaultIPhoneIFaxIEmailCustomerNameAddressBuyPhoneNumberCallFaxNumberTransmitSendToSendFromMessageSendDelete第五十一頁(yè),共六十九頁(yè),編輯于2023年,星期四使用接口的益處簡(jiǎn)化開(kāi)發(fā)

在一個(gè)大型程序中,一個(gè)類(lèi)可以有很多不同的屬性和方法以提供特定類(lèi)型的功能。如果屬性和方法組合到接口中,類(lèi)的開(kāi)發(fā)就被簡(jiǎn)化了。一組類(lèi)中的標(biāo)準(zhǔn)功能

一個(gè)接口提供了一組預(yù)定義的屬性和方法簡(jiǎn)化的再利用

可以在任意數(shù)量的類(lèi)中實(shí)現(xiàn)一個(gè)接口,如果以后想在不同的類(lèi)中定義同一組屬性和方法,可以通過(guò)在其它類(lèi)中實(shí)現(xiàn)接口來(lái)再利用第五十二頁(yè),共六十九頁(yè),編輯于2023年,星期四使用接口的益處添加了新功能但不影響已有的接口

如何向Customer中增加Mobile功能?

1、更改IPhone接口2、添加新接口IMobile

思考:軟件是如何升級(jí)的?改善的多態(tài)性

實(shí)現(xiàn)統(tǒng)一接口的多重類(lèi)一般可以通過(guò)使用多態(tài)性的接口進(jìn)行訪問(wèn)獲得實(shí)現(xiàn)繼承性

為了防止多個(gè)類(lèi)中代碼的重復(fù),可以在單個(gè)類(lèi)中開(kāi)發(fā)公共的代碼,該類(lèi)稱為基類(lèi),可通過(guò)引用每個(gè)類(lèi)中的基類(lèi)的接口實(shí)現(xiàn)繼承第五十三頁(yè),共六十九頁(yè),編輯于2023年,星期四創(chuàng)建并實(shí)現(xiàn)接口使用VB6創(chuàng)建接口使用新的Implements關(guān)鍵字實(shí)現(xiàn)接口使用替代接口第五十四頁(yè),共六十九頁(yè),編輯于2023年,星期四VB6創(chuàng)建接口添加一個(gè)類(lèi)(Isave)添加空的方法(Save)模塊級(jí)變量聲明和過(guò)程代碼?

在一個(gè)用作接口的類(lèi)模塊中的代碼,包括定義的私有變量和事件,當(dāng)實(shí)現(xiàn)接口時(shí)將被忽略接口就是代表接口封裝的成員(方法以及屬性)的原型集合;也就是說(shuō),它只包含成員過(guò)程的聲明部分。第五十五頁(yè),共六十九頁(yè),編輯于2023年,星期四Implements語(yǔ)句指定要在包含該語(yǔ)句的類(lèi)模塊中實(shí)現(xiàn)的接口或類(lèi)Implements[InterfaceName|Class]Implements語(yǔ)句不能在標(biāo)準(zhǔn)模塊中使用

第五十六頁(yè),共六十九頁(yè),編輯于2023年,星期四實(shí)現(xiàn)接口同一接口可以在應(yīng)用程序中的任意數(shù)量的窗體或類(lèi)模塊(不含標(biāo)準(zhǔn)模塊)中實(shí)現(xiàn)用Implements語(yǔ)句聲明接口從”對(duì)象”框中選擇接口,從“過(guò)程/事件”框中選擇屬性和方法添加代碼以實(shí)現(xiàn)接口第五十七頁(yè),共六十九頁(yè),編輯于2023年,星期四使用接口將對(duì)象分配給接口聲明帶有接口變量的過(guò)程第五十八頁(yè),共六十九頁(yè),編輯于2023年,星期四將對(duì)象分配給接口聲明對(duì)象變量

PrivatemCustomerasCCustomer聲明接口類(lèi)型變量

PrivatemIsaveasIsave將接口對(duì)象賦給對(duì)象變量

setmCustomer=NewCCustomer

setmIsave=mCustomer‘不要New使用接口變量引發(fā)屬性或方法

mIsave.save第五十九頁(yè),共六十九頁(yè),編輯于2023年,星期四聲明帶有接口變量的過(guò)程聲明對(duì)象變量

PrivatemCustomerasCCustomer創(chuàng)建過(guò)程以實(shí)現(xiàn)該操作

publicsubsave(ObjasIsave) ifobj.isdirtythen obj.save endif endsub調(diào)用過(guò)程并將對(duì)象作為變量傳遞

savemCustomer第六十頁(yè),共六十九頁(yè),編輯于2023年,星期四用接口實(shí)現(xiàn)多態(tài)性多態(tài)性就是利用公共接口與來(lái)自不同類(lèi)的對(duì)象交流的能力實(shí)現(xiàn)多態(tài)性

多重類(lèi)可以實(shí)現(xiàn)同一接口,該接口中所定義的屬性和方法隨后可以被引發(fā),以作用于由實(shí)現(xiàn)接口的類(lèi)所創(chuàng)建的任意對(duì)象。

PrivatemCustomerasCCustomer

PrivatemStudent

asCStudent

savemStudent

savemCustomer第六十一頁(yè),共六十九頁(yè),編輯于2023年,星期四集合多態(tài)性的實(shí)現(xiàn)可以使用同集合相結(jié)

溫馨提示

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