VBA面向?qū)ο蟪绦蛟O(shè)計(jì)_第1頁
VBA面向?qū)ο蟪绦蛟O(shè)計(jì)_第2頁
VBA面向?qū)ο蟪绦蛟O(shè)計(jì)_第3頁
VBA面向?qū)ο蟪绦蛟O(shè)計(jì)_第4頁
VBA面向?qū)ο蟪绦蛟O(shè)計(jì)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、9.1 面向?qū)ο蠡靖拍?面向?qū)ο蟮南到y(tǒng)觀不同于結(jié)構(gòu)化程序設(shè)計(jì)思想,基于面向?qū)ο蟮南到y(tǒng)觀認(rèn)為,一個(gè)系統(tǒng)是由若干對象和這些對象間的交互構(gòu)造而成。面向?qū)ο笙到y(tǒng)觀反映了基于面向?qū)ο蟮姆椒ㄈ绾螛?gòu)造軟件系統(tǒng)。29.1.1 面向?qū)ο蠛诵母拍顚ο髮傩苑椒ê褪录涌谙㈩?對象對象就是現(xiàn)實(shí)或抽象世界中具有明確含義或邊界的事物。例如學(xué)生“江華”就是一個(gè)對象。對象是屬性和方法(或事件)的封裝體。VBA包括:窗體、命令按鈕、組合框等對象。這些對象用來構(gòu)成與用戶交互的界面元素4對象示意圖52. 屬性屬性用來刻畫對象所具備的特性,屬性具有屬性名和屬性值兩個(gè)部分。例如江華的籍貫為“江西贛州”“江西贛州”為學(xué)生“江華”的籍

2、貫屬性取值6屬性屬性取值不同,可以使對象具有不同的狀態(tài)。對圖形化界面中的命令按鈕來說,屬性用來控制其顯示的特性,例如“標(biāo)題”屬性的取值為“確定”,決定命令按鈕上顯示的文字為“確定”。命令按鈕的“可用”屬性決定命令按鈕是否有效7命令按鈕部分屬性83. 方法和事件方法(或事件)是對象具有的某種處理功能,在程序代碼上表現(xiàn)為一個(gè)程序過程。例如學(xué)生“江華”的“注冊學(xué)籍”、“選修課程”操作就是學(xué)生對象具有的方法。9方法和事件不同之處對象的方法調(diào)用是使用特定格式的顯式調(diào)用事件的調(diào)用方式是隱式的。即通常不存在一條語句來說明事件被調(diào)用。事件的調(diào)用或觸發(fā)是由用戶的操作來實(shí)現(xiàn)的,這被稱為事件驅(qū)動。10事件例子例如:

3、命令按鈕上存在鼠標(biāo)的單擊事件,當(dāng)用戶使用鼠標(biāo)指向該命令按鈕并單擊鼠標(biāo)左鍵時(shí),將觸發(fā)在命令按鈕上單擊事件中預(yù)先編寫的代碼。11命令按鈕具有的事件通常一個(gè)對象包括很多事件,命令按鈕具有的事件。124. 接口接口是對象的特殊屬性和方法(或事件),它表示一個(gè)對象為其他對象提供的服務(wù)。這些服務(wù)包括一個(gè)對象向其他對象公開的屬性和方法(或事件)。一個(gè)對象接口中的屬性和方法(或事件)為其他對象所知道,故其他對象通過發(fā)送消息到該對象來實(shí)現(xiàn)對象間的交互。135. 消息消息實(shí)現(xiàn)了對象間的交互。一個(gè)對象通過接口向外界公布其提供的屬性和方法(或事件),其他對象通過發(fā)送一個(gè)特定的消息來與這個(gè)對象進(jìn)行交互,可能有結(jié)果返回到

4、發(fā)送消息的對象,也可能沒有結(jié)果返回發(fā)送消息的對象。消息的描述除了和對象公布的屬性和方法(或事件)有關(guān)外,它還有特定的格式。146. 類在面向?qū)ο蟪绦蛟O(shè)計(jì)中,為提高程序代碼的重用,一個(gè)特定對象的屬性和方法(或事件)由一個(gè)特定類來定義。類可以視為生產(chǎn)多個(gè)具有相同屬性和方法(或事件)的對象模板。一般利用類來組織相似的多個(gè)對象。15類在面向?qū)ο笙到y(tǒng)和程序中,具有相同結(jié)構(gòu)和功能的對象一般用類進(jìn)行描述,并把一個(gè)特定對象稱為其所屬類的實(shí)例。類描述的是具有相同屬性和方法(或事件)的一組對象。16類的例子例如:江華和楊陽都是學(xué)生,即他們是“學(xué)生”類的實(shí)例,他們都具有“學(xué)號”、“姓名”等屬性,同時(shí)都具有“注冊學(xué)籍

5、”、“選修課程”等操作方法。為此面向?qū)ο蠓椒ㄖ刑岢鰧⒕哂邢嗤瑢傩院头椒ǎɑ蚴录ο蟪橄蟮筋惖姆椒?,即類是對象的抽象,而一個(gè)具體對象是某個(gè)類的實(shí)例。17類的例子由于類與對象使用相同的描述方式,即都具有屬性和方法(或事件)。這使得類、對象的概念容易混淆。將一個(gè)圖章看成是一個(gè)類,而圖章所蓋出的圖章印是一個(gè)對象。在面向?qū)ο蟾拍钪?,類是對象的抽象,對象是類的?shí)例。189.1.2 類或?qū)ο蟮奶匦詫ο蟮目蓸?biāo)識性類或?qū)ο蟮姆庋b性對象的狀態(tài)性對象的自治性類的繼承性注意區(qū)分:類還是對象的特性,或兩者共有的特性19對象的可標(biāo)識性每個(gè)對象實(shí)例都有標(biāo)識自己的名稱(Name)或標(biāo)識號(英語為Identifier,簡寫為

6、ID)。例如,如果圖章具有自動改變序號功能,則每個(gè)實(shí)例化出來的圖章印,雖具有相同的屬性和操作,但它們具有不同的標(biāo)識號序號不同。20對象可標(biāo)識性示例左側(cè)選中的復(fù)選框名稱為Check0名稱“Check0”被用來標(biāo)識左側(cè)的復(fù)選框?qū)ο蟆?12. 類或?qū)ο蟮姆庋b性類(或?qū)ο螅┑姆庋b性表現(xiàn)在對象將屬性和方法(或事件)封裝在對象中。對象封裝的好處是可以隱藏對象內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),即所謂的信息隱蔽原則,也可以理解為黑箱。只關(guān)心它提供的功能,不關(guān)心對象的功能是如何編寫實(shí)現(xiàn)??梢远沤^由于某個(gè)對象的方法(或事件)改變對其他對象的影響,通過獨(dú)立的分治原則可以減低問題的復(fù)雜性。223. 對象的狀態(tài)性對象的狀態(tài)性是通過給對象

7、的屬性賦值來表現(xiàn)的。即對象的取值不同,對象就處于不同狀態(tài)。例如,學(xué)生“江華”對象。這里類為“學(xué)生”,類“學(xué)生”的姓名屬性值為“江華”。234. 對象的自治性由于對象是屬性和方法(或事件)的封裝體。對象狀態(tài)的改變是由該對象自身實(shí)施的。即其他對象通過發(fā)送消息,請求一個(gè)對象改變其狀態(tài),該對象的狀態(tài)是否改變?nèi)Q于該對象當(dāng)前的狀態(tài),在某些狀態(tài)下可能無法改變該對象的狀態(tài),這稱為對象的自治性。245. 類的繼承性面向?qū)ο蟮母拍钪?,已?jīng)討論了類與對象間的關(guān)系,類與類之間是否存在關(guān)系呢?在語義上,一個(gè)類與另一個(gè)類之間可能存在類繼承關(guān)系。25類繼承的例子父類子類子類繼承了父類的所有屬性和方法(或事件)26類繼承的

8、例子2“汽車”類是一個(gè)抽象的類它具有一般汽車具有的屬性和方法(或事件),這里它被稱為父類(也被稱為基類)?!靶∑嚒鳖惔怼捌嚒鳖愊旅娴囊粋€(gè)分類,這里被稱為子類,子類繼承了父類的所有屬性和方法(或事件)。27類繼承的例子3由子類實(shí)例化所得對象的屬性和方法(或事件)包括在子類中定義的屬性和方法(或事件),在父(基)類中定義的屬性和方法(或事件)。28類繼承的優(yōu)點(diǎn)類繼承性的好處是可以減少代碼冗余。實(shí)現(xiàn)一次編碼,多處使用減少軟件系統(tǒng)開發(fā)工作減少軟件系統(tǒng)的維護(hù)工作量296. 對象的多態(tài)性(略)由于對象的自治性和狀態(tài)性相同調(diào)用,可以返回不同結(jié)果。307. 面向?qū)ο缶幊踢^程對于面向?qū)ο蟪绦蛟O(shè)計(jì)語言來說,

9、編寫具備特定功能程序的過程大致分為三步:(1)根據(jù)給出的實(shí)際問題,抽象出相關(guān)的名詞術(shù)語,再將這些名詞變成該系統(tǒng)中的各個(gè)核心概念類,類封裝了其代表核心概念的屬性和方法(或事件);(2)將類實(shí)例化為對象;(3)描述這些對象間的交互,即這些對象間的消息關(guān)系。31Access 2007面向?qū)ο缶幊谭謱映跫夒A段中級階段高級階段32(1)初級階段用戶不用編寫自己的類代碼,僅需將Access對象模型提供的類實(shí)例化為對象,再編寫這些對象間的交互部分的程序。33(1)初級階段2初級階段用戶使用的類庫是Access 2007的對象模型它提供了幾乎所有的Access 2007界面構(gòu)成元素的類庫34初級用戶操作構(gòu)造定

10、制窗體的過程是將相應(yīng)的(控件)類實(shí)例化為對應(yīng)(控件)對象的過程編寫代碼的過程描述多個(gè)對象間交互的過程。優(yōu)點(diǎn)編程簡單、編寫程序代碼可靠性高35初級階段特性初級階段的程序編寫主要強(qiáng)調(diào)對象的可標(biāo)識性這是編程引用對象的基礎(chǔ)自治性狀態(tài)性36(2)中級階段中級階段是在初級的基礎(chǔ)上,增加了用戶自定義類,但這個(gè)類不從其他類繼承任何的屬性和方法(或事件),它僅僅是一個(gè)簡單的類。在這個(gè)階段,用戶除了初級階段工作,還需要將自己編寫的類先實(shí)例化為對象,再引用該對象對應(yīng)的屬性和方法。37(3)高級階段高級階段的工作是在中級階段的基礎(chǔ)上增加的用戶自定義類涉及從其他類繼承了屬性和方法(或事件)。38類與對象之間的關(guān)系類與類關(guān)系類與對象關(guān)系對象與對象關(guān)系類與類間為繼承關(guān)系。類可以實(shí)例化到多個(gè)對象;多個(gè)對象抽象到一個(gè)類。對象與對象間是交互關(guān)系。對象間交互就是消息,消息中引用對象屬性和調(diào)用對象方法有嚴(yán)格格式39面向?qū)ο缶幊淌纠龢?gòu)造界面40面向?qū)ο缶幊淌纠?設(shè)置屬性例如設(shè)置“標(biāo)題”屬性的取值41面向?qū)ο缶幊淌纠?編寫事件代碼42【例9-1】運(yùn)行結(jié)果說明(1)當(dāng)選中“可移動”復(fù)選框時(shí),窗體可以移動;當(dāng)沒有選中該復(fù)選框時(shí),窗體不可移動。(2)單擊“面向?qū)ο蟪绦蛟O(shè)計(jì)示例一”單選框時(shí),窗體標(biāo)題顯示為“面向?qū)ο蟪绦蛟O(shè)計(jì)示例一”;當(dāng)單擊“A Demonstration for Or

溫馨提示

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

最新文檔

評論

0/150

提交評論