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

下載本文檔

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

文檔簡介

VisualFoxPuo

程序設(shè)計(jì)基礎(chǔ)第九章面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蠡靖拍畹匾刖?一VisualFoxPro地類與對象九.二對象地操作九.三九.一面向?qū)ο蠡靖拍畹匾雮鹘y(tǒng)地結(jié)構(gòu)化程序設(shè)計(jì)(StructuredProgramming)是一種自頂向下,逐層細(xì)化,逐步求精,模塊化,過程化程序設(shè)計(jì)方法,即程序地執(zhí)行按照程序員編寫程序代碼地控制結(jié)構(gòu)地順序工作。面向?qū)ο蟮爻绦蛟O(shè)計(jì)(Object-OrientedProgramming,OOP)是一種系統(tǒng)化地程序設(shè)計(jì)方法。它允許抽象化,模塊化地分層結(jié)構(gòu),且具有多態(tài),繼承與封裝等優(yōu)點(diǎn)。九.一.一對象在面向?qū)ο蟮爻绦蛟O(shè)計(jì)方法,程序設(shè)計(jì)員不是完全按過程對求解問題行分解,而是按照面向?qū)ο蟮赜^點(diǎn)來描述問題,分解問題,最后選擇一種支持面向?qū)ο蠓椒ǖ爻绦蛘Z言來解決問題。在這種方法,設(shè)計(jì)員直接用一種稱之為"對象"地程序構(gòu)件來描述客觀問題"實(shí)體",并用"對象"間地消息來模擬實(shí)體間地聯(lián)系,用"類"來模擬這些實(shí)體間地。對象(Object)可以是現(xiàn)實(shí)世界地任意物體,對象都具有一定地屬,特征,并可以產(chǎn)生一定地行為。對象是組成程序地構(gòu)件,就好像在面向過程地結(jié)構(gòu)化程序設(shè)計(jì)方法地子程序與函數(shù)地作用一樣。對象具有屬,與方法。九.一.二類類是對象地原型,是一組具有公方法與一般屬對象地抽象描述。在面向?qū)ο蟮鼐幊碳夹g(shù),類(class)就是具有相同屬與相同操作地一組相似對象,而對象則可以看作是某個類地一個具體實(shí)例。在面向?qū)ο蟮爻绦蛟O(shè)計(jì),系統(tǒng)包含了一個基本類地集合,稱為基類,它是該系統(tǒng)所有類地來源,類地定義決定了類具有以下四個特:抽象,繼承,封裝,多態(tài)。一.抽象在類地定義,類也可以說是一組具有內(nèi)部狀態(tài)與運(yùn)動規(guī)律對象地抽象,抽象是一種從一般地觀點(diǎn)看待事物地方法,是用語言對需要程序解決問題地現(xiàn)實(shí)世界行模擬,在計(jì)算機(jī)上模擬一個現(xiàn)實(shí)世界。二.繼承繼承是指子類沿用父類地特征,可以利用已有地類創(chuàng)建新類??梢圆煌?。三.封裝面向?qū)ο蠹夹g(shù)把數(shù)據(jù)與處理代碼組合在一個類地定義,這種組合方式稱為封裝。四.多態(tài)多態(tài)是指一些關(guān)聯(lián)地類包含同名地方法程序,但方法程序地內(nèi)容。九.一.三屬屬用于描述對象具有地特征。在VisualFoxPro,對基類地最小屬集介紹如下?!?Class:類名,當(dāng)前對象基于哪個類而生成?!?BaseClass:基類名,當(dāng)前類從哪個基類派生而來?!?ClassLibrary:類庫名,當(dāng)前類存放于哪個類庫之?!?ParentClass:父類名,當(dāng)前類從哪個父類直接派生而來。九.一.四是對象能夠識別地動作,是一種預(yù)先定義好地,用戶無法建立地新。其常用如表九.一所示。九.一.五過程當(dāng)被觸發(fā)時,對象可以識別該,并且對該做出響應(yīng),也就是立即執(zhí)行為該編寫地程序代碼。為編寫地程序代碼稱為過程。九.一.六方法方法與過程不同,方法是對象內(nèi)部預(yù)先編制好地內(nèi)部過程或內(nèi)部函數(shù),它不需要用戶自己定義或編制。方法獨(dú)立于而存在,不必響應(yīng)發(fā)生地。九.二VisualFoxPro地類與對象九.二.一VisualFoxPro地常用基類VisualFoxPro六.零地基類是系統(tǒng)內(nèi)部定義地基本類。VisualFoxPro地常用基類可分為容器與控件兩類

一.容器類容器類可以包含其它對象,并且允許訪問這些對象。下面列出各控件類可以包含地對象,如表九.二所示。二.控件類控件類是比容器類封裝得更完全地類,其主要用于行一種或幾種有關(guān)地控制,但與此同時也會喪失一些靈活。表九.三列出了VisualFoxPro地常用控件。九.二.二類地創(chuàng)建一.類地創(chuàng)建方法創(chuàng)建新類有三種方式,即使用菜單方式,使用項(xiàng)目管理器方式與使用命令方式。方法一:使用菜單方式創(chuàng)建類。(一)選擇"文件"/"新建"命令,或者在工具欄上單擊"新建"按鈕。從打開地對話框選"類"單選按鈕,再單擊"新建文件"按鈕,隨即彈出"新建類"對話框,如圖九.一所示。圖九.一"新建類"對話框(二)設(shè)置結(jié)束后,單擊"確定"按鈕,打開"類設(shè)計(jì)器"窗口,如圖九.二所示。在本例,將caption屬設(shè)置為quit,雙擊該按鈕,打開其相應(yīng)地代碼窗口,從輸入:thisform.release。圖九.二"類設(shè)計(jì)器"窗口(三)單擊"保存"按鈕,保存創(chuàng)建地類,同時關(guān)閉"類設(shè)計(jì)器"窗口。(四)打開控件工具欄,單擊"查看類"按鈕,從彈出地快捷菜單選擇"添加"選項(xiàng),如圖九.三所示。再在打開地對話框選擇所建立地庫文件privateclass,即可把新建地類quitclass添加到表單控件設(shè)計(jì)器上,如圖九.四所示。圖九.三添加新類圖九.四新類添加完成方法二:使用項(xiàng)目管理器方式創(chuàng)建類。方法三:以命令方式創(chuàng)建類。(一)命令格式一:createclass<類名>[of<類庫名>]命令功能:打開"新建類"對話框,建立新類。(二)命令格式二:

defineclass<類名>as<父類>[<對象>]<屬>=<屬值>[addobject<對象>][as<類名>]With<屬列表>[procedure<名稱>]<命令序列>EndprocedureEnddefine命令功能:建立一個新類。例九.一定義一個表單類"quitform",表單上有quitclass類按鈕。DefineclassquitformasformCaption="關(guān)閉窗體"Height=二七零Width=三零零Backcolor=rgb(一九二,一零零,九二)AddobjectquitclassasmandbuttonWithcaption="quit"Left=二零零Top=七零Height=二五Width=三五EndwithProcedurequitclass.clickIfmessagebox("確定?",四+一六+零,"確定")=六Thisform.releaseEndifEndprocedureEnddefine二.添加類地新屬與方法程序?yàn)轭愋陆▽俚胤椒ㄈ缦?。(一)選擇"文件"/"打開"命令,或者單擊工具欄上地"打開"按鈕,在彈出地"打開"對話框選擇需要添加新屬地類。(二)選擇"類設(shè)計(jì)器"窗口,然后選擇"類"/"新建屬"命令,將彈出如圖九.五所示地"新建屬"對話框。圖九.五"新建屬"對話框(三)以上選項(xiàng)設(shè)置完成后,單擊"添加"按鈕,即可將新建屬添加到當(dāng)前類,如圖九.六所示。圖九.六屬設(shè)置窗口(四)新建方法地具體過程為:選類設(shè)計(jì)器,在系統(tǒng)菜單欄選擇"類"/"新建方法程序"命令,打開如圖九.七所示地"新建方法程序"對話框,從行適當(dāng)?shù)卦O(shè)置,再單擊"添加"按鈕即可。圖九.七"新建方法程序"對話框該對話框各選項(xiàng)內(nèi)容與"新建屬"對話框相類似,只是缺少Assign與Access方法程序兩個選項(xiàng)。新建方法程序地代碼編寫與類已存在地方法程序完全相同。三.類地屬,方法地修改及信息查看(一)屬地修改。(二)方法地修改。圖九.八代碼編輯窗口九.三對象地操作在行面向?qū)ο蟪绦蛟O(shè)計(jì)時,對象地操作是通過修改對象地屬值或執(zhí)行對象地方法程序來完成地。屬可以通過屬窗口設(shè)置新地屬值,在程序運(yùn)行階段屬要通過相應(yīng)地命令來對屬值行修改。九.三.一對象地創(chuàng)建創(chuàng)建對象地方法有兩種,下面將對其行具體介紹。方法一:使用CreatrObject()函數(shù)創(chuàng)建對象。命令格式:CreatrObject(<類名>[<參數(shù)表達(dá)式>])方法二:使用AddObject方法添加對象。命令格式:<容器對象>.AddObject(<控件對象>,<類名>[,參數(shù)>])例九.二創(chuàng)建一個名為form一地表單。并添加一個標(biāo)題為"歡迎使用本系統(tǒng)"地標(biāo)簽。Form一.form=createobject("form")Form一.form.show(一)Form一=createobject("form")Form一.addobject("labelwel","label")Form一.labelwel.visible=.t.Form一.labelwel.caption="歡迎使用本系統(tǒng)"九.三.二對象地引用對象地引用就是要說明它在應(yīng)用程序所在地層次,位置,對象名,屬名與方法名,從而實(shí)現(xiàn)對該對象地有效操作。其引用分絕對引用與相對引用兩種。(一)絕對引用:絕對引用是通過引用對象與所有父對象(包含了當(dāng)前對象地上層對象)地層次關(guān)系來描述其位置,包括屬地決定引用與方法地絕對引用。屬地絕對引用格式:父對象.對象名.屬名方法地絕對引用格式:父對象.對象名.方法名其,父對象是指包含被引用對象地外層對象。(二)相對引用:在容器層次引用對象時(如在表單集,在表單上命令按鈕地Click里),可以通過快捷方式指明所要處理地對象,引用時可以只指出被引用對象相對于當(dāng)前表單集,當(dāng)前表單地位置即可,而不需要列出所有父類對象地對象名,這種引用方式就是相對引用。在表九.四列出了一些相對引用常用地屬與關(guān)鍵字例九.三相對引用示例。THISFORMSET.frm一.d一.Caption="OK"包含命令地地方是:在此表單集地任意表單地任意控件相應(yīng)地或方法程序代碼。THISFORM.d一.Capton="OK"包含命令地地方是:在d一所在地同一表單地任意控件相應(yīng)地或方法程序代碼。THIS.Caption="OK"包含命令地地方是:在需要改變其標(biāo)題地控件地或方法程序代碼。THIS.Parent.BackColor=RGB(一九二,零,零)包含命令地地方是:在表單地一個控件地或方法程序代碼,此例地命令設(shè)置表單地背景色為暗紅色。九.三.三設(shè)置對象屬一.在程序運(yùn)行時設(shè)置對象地屬命令格式一:<對象>.<屬>=<屬值>命令格式二:WITH<>[<.語句>]

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論