面向?qū)ο罂梢暬幊袒A(chǔ)_第1頁(yè)
面向?qū)ο罂梢暬幊袒A(chǔ)_第2頁(yè)
面向?qū)ο罂梢暬幊袒A(chǔ)_第3頁(yè)
面向?qū)ο罂梢暬幊袒A(chǔ)_第4頁(yè)
面向?qū)ο罂梢暬幊袒A(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)1面向?qū)ο蟪绦蛟O(shè)計(jì)概述 一、面向?qū)ο蟪绦蛟O(shè)計(jì)概念 1對(duì)象 對(duì)象是對(duì)客觀存在的具體事物的表示。 對(duì)象有屬性和方法。2類(lèi)類(lèi)是具有相同屬性和方法的一組對(duì)象的集合。在OOP方法中,“類(lèi)”是對(duì)現(xiàn)實(shí)世界的一種高度抽象。從程序設(shè)計(jì)者的角度觀察,“類(lèi)”是一個(gè)數(shù)據(jù)模式和若干個(gè)程序過(guò)程經(jīng)封裝而形成的一個(gè)整體,它是使用信息技術(shù)對(duì)現(xiàn)實(shí)世界的一種模擬與抽象,而“對(duì)象”則是“類(lèi)”的一個(gè)實(shí)例,是OOP方法中構(gòu)成程序的基本單位。 23屬性屬性是對(duì)象的一組特征數(shù)據(jù)。每個(gè)對(duì)象都有多個(gè)屬性來(lái)描述,不同的對(duì)象可以有相同的屬性,但必須有不同的屬性值來(lái)區(qū)分他們。 4事件與方法事件是對(duì)象觸發(fā)的行為描述,它是預(yù)先定義好的動(dòng)作

2、,通過(guò)用戶的操作或系統(tǒng)來(lái)激活。事件是通過(guò)用戶的交互操作產(chǎn)生的。 方法是與對(duì)象相關(guān)的過(guò)程,通過(guò)調(diào)用對(duì)象的方法,可以完成某些任務(wù),所以方法是需要顯示調(diào)用的。 35封裝性、繼承性和多態(tài)性O(shè)OP的方法中有3個(gè)基本特性:封裝性、繼承性和多態(tài)性。封裝性,是使抽象性成為可能,簡(jiǎn)單的說(shuō)就是信息隱藏。我們把事物的共同屬性和方法封裝在一起,從而讓使用者,不必了解其是怎樣實(shí)現(xiàn)的。 繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)中的一個(gè)重要概念,它是從現(xiàn)有的類(lèi)中派生出新的類(lèi)的特性。通過(guò)對(duì)父類(lèi)的繼承,可以避免數(shù)據(jù)和方法的重復(fù),實(shí)現(xiàn)了代碼的可重用性,為代碼的維護(hù)提供了極大方便。具體而言,就是一個(gè)類(lèi)可以有子類(lèi),子類(lèi)將繼承其父類(lèi)的屬性和方法,并可

3、以定義自己特定的屬性和方法。 多態(tài)性主要是指一些關(guān)聯(lián)的類(lèi)包含同名的方法,但方法的內(nèi)容可以不同。具體調(diào)用哪種方法應(yīng)在運(yùn)行時(shí)根據(jù)具體對(duì)象所屬的類(lèi)確定。 4面向?qū)ο蟪绦蛟O(shè)計(jì)方法一、Visual FoxPro中的基類(lèi) Visual FoxPro中有兩大基類(lèi):容器類(lèi)和控件類(lèi)。因此Visual FoxPro中的對(duì)象也分為兩大類(lèi)型,容器對(duì)象和控件對(duì)象。Visual FoxPro中提供了21種常用基類(lèi),每一個(gè)基類(lèi)對(duì)應(yīng)一個(gè)Visual FoxPro工具欄的圖形按鈕。1容器類(lèi)容器類(lèi)對(duì)象可以包含其他對(duì)象,并允許訪問(wèn)這些對(duì)象。2控件類(lèi)控件類(lèi)是可以包含在容器類(lèi)中并可以由用戶派生的Visual FoxPro基類(lèi)??丶?lèi)不

4、能包含其他對(duì)象,其封裝比容器類(lèi)更嚴(yán)密。當(dāng)需要訪問(wèn)放入到容器中的控件對(duì)象時(shí),需要經(jīng)過(guò)容器進(jìn)行引用。其基本格式:容器對(duì)象.控件對(duì)象.屬性屬性值 5二、類(lèi)的創(chuàng)建創(chuàng)建類(lèi)的操作主要有兩種方式:用類(lèi)設(shè)計(jì)器創(chuàng)建類(lèi)和以編程方式定義類(lèi)。 用類(lèi)設(shè)計(jì)器創(chuàng)建類(lèi) 以編程方式定義類(lèi) 【例】通過(guò)編程的方式定義一個(gè)類(lèi)。代碼如下:DEFINE CLASS MyForm AS FORM & 定義Form類(lèi)的子類(lèi)MyFormHEIGHT=7WIDTH=60ADD OBJECT Button AS COMMANDBUTTON; & 為MyForm添加一個(gè)按鈕對(duì)象 WITH caption=”按鈕”,; width=10ENDDEFI

5、NE 6三、對(duì)象的操作對(duì)象就是類(lèi)的一個(gè)實(shí)例,在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,最終的程序功能的完成是由對(duì)象去做的。 1、由類(lèi)創(chuàng)建對(duì)象 (1)創(chuàng)建對(duì)象 【格式】CREATEOBJECT(“類(lèi)名”)例如:F1CREATEOBJECT(“Form”) & 創(chuàng)建一個(gè)Form類(lèi)的對(duì)象F1B1=CREATEOBJECT(“CommandButton”) & 創(chuàng)建一個(gè)CommandButton類(lèi)的對(duì)象B17(2)釋放對(duì)象對(duì)象作為內(nèi)存中的變量,將占用著內(nèi)存資源。當(dāng)我們不需要某些對(duì)象時(shí),就可以釋放對(duì)象 .【格式】RELEASE |ALL LIKE 例如:RELEASE F1 & 釋放對(duì)象F1RELEASE ALL LIK

6、E B* & 釋放所有名字以“B”開(kāi)頭的對(duì)象 8如果我們要引用對(duì)象“Text1”,并將其“Caption”屬性設(shè)置為“控件”,則可以進(jìn)行的操作是:Thisform.pageframe1.page1.text1.Caption=”控件” 除了可以通過(guò)層次關(guān)系直接的引用對(duì)象,我們還可以從相對(duì)位置進(jìn)行對(duì)象引用。常用的關(guān)鍵字有:Parent:當(dāng)前對(duì)象的父容器This:當(dāng)前對(duì)象ThisForm:包含當(dāng)前對(duì)象的表單(3)對(duì)象的引用在Visual FoxPro中引用一個(gè)對(duì)象,需要知道這個(gè)對(duì)象相對(duì)于容器的層次關(guān)系。 92設(shè)置對(duì)象屬性對(duì)象的屬性承載著與對(duì)象相關(guān)的某些數(shù)據(jù)信息,其值可以在設(shè)計(jì)階段設(shè)置,也可以在程序

7、運(yùn)行過(guò)程中進(jìn)行修改。設(shè)置對(duì)象屬性的語(yǔ)法是如下。【格式1】【格式2】WITH 屬性名1屬性值1 屬性名n屬性值nENDWITH格式1:對(duì)于對(duì)象的一個(gè)屬性進(jìn)行設(shè)置值。格式2:可以同時(shí)為對(duì)象的多個(gè)屬性設(shè)置值。 10【例】設(shè)計(jì)一個(gè)表單程序。表單對(duì)象中,包含一個(gè)標(biāo)簽,一個(gè)文本框和一個(gè)命令按鈕對(duì)象。AddObject()方法。它的作用是在一個(gè)容器對(duì)象中添加一個(gè)對(duì)象。格式:.AddObject(,)設(shè)計(jì)步驟如下:*新建一個(gè)表單對(duì)象,表單中包含一個(gè)標(biāo)簽,一個(gè)文本框和一個(gè)命令按鈕form=CreateObject(form) & 創(chuàng)建表單對(duì)象“form”form.caption=一個(gè)表單程序 & 設(shè)置“form

8、”的標(biāo)題屬性form.AddObject(label1,Label) & “form”上加入一個(gè)標(biāo)簽form.AddObject(edit1,TextBox) & 加入一個(gè)文本框?qū)ο骹orm.AddObject(command1,CommandButton) & 加入一個(gè)按鈕對(duì)象form.label1.Top=10 & 設(shè)置標(biāo)簽對(duì)象的頂端高度11form.label1.Visible=.T. & 設(shè)置標(biāo)簽可見(jiàn)form.label1.Caption=請(qǐng)輸入姓名: & 設(shè)置標(biāo)簽的標(biāo)題form.label1.AutoSize=.T. & 設(shè)置標(biāo)簽自動(dòng)調(diào)整大小form.edit1.Top=40 & 設(shè)

9、置文本框頂端高度f(wàn)orm.edit1.width=300 & 設(shè)置文本框?qū)挾萬(wàn)orm.edit1.Visible=.T. & 設(shè)置文本框可見(jiàn)mand1.Caption=命令按鈕 & 設(shè)置按鈕標(biāo)題mand1.Visible=.T. & 設(shè)置按鈕可見(jiàn)mand1.Top=70 & 設(shè)置按鈕的頂端高度mand1.Left=20 & 設(shè)置按鈕的左端寬度f(wàn)orm.show(1) & 顯示表單對(duì)象123調(diào)用對(duì)象方法【格式】對(duì)象名.方法名例如:Form1.Refresh & 重畫(huà)表單Form1,并刷新所有值每個(gè)對(duì)象的方法有很多,并且不同的對(duì)象可以有相同的方法。方法名稱(chēng)方法功能AddItem給ComboBox或

10、ListBox控件新增一項(xiàng)Box在表單對(duì)象上畫(huà)一個(gè)矩形Circle在表單對(duì)象上畫(huà)一個(gè)圓Clear清除組合框或列表框中的內(nèi)容Cls清除表單上的圖形或文本Hide隱藏表單或表單集Line在表單上畫(huà)直線Refresh刷新表單Move移動(dòng)對(duì)象SetFocus為對(duì)象設(shè)置焦點(diǎn)Print在表單上打印字符串134觸發(fā)對(duì)象事件事件是預(yù)先設(shè)定好的特定動(dòng)作,由用戶或系統(tǒng)來(lái)激活。用戶是不能創(chuàng)建新事件的,這點(diǎn)跟方法不一樣。在平常的計(jì)算機(jī)操作中,我們做出某些動(dòng)作后,將引發(fā)相應(yīng)的事件。事件名稱(chēng)觸發(fā)事件說(shuō)明CLICK當(dāng)單擊鼠標(biāo)左鍵時(shí)觸發(fā)事件DblClick當(dāng)雙擊鼠標(biāo)左鍵時(shí)觸發(fā)事件DragDrop當(dāng)拖放鼠標(biāo)時(shí)觸發(fā)事件Right

11、Click當(dāng)單擊鼠標(biāo)右鍵時(shí)觸發(fā)事件MouseDown當(dāng)按下鼠標(biāo)時(shí)觸發(fā)事件KeyPress當(dāng)按下并放開(kāi)鍵盤(pán)時(shí)觸發(fā)事件Deleted當(dāng)執(zhí)行刪除記錄操作時(shí)觸發(fā)事件GetFocus當(dāng)控件對(duì)象獲得焦點(diǎn)時(shí)觸發(fā)事件Activate當(dāng)表單或表單集被激活或者ToolBar對(duì)象顯示時(shí)觸發(fā)事件Load當(dāng)載入表單到內(nèi)存時(shí)觸發(fā)事件Resize當(dāng)對(duì)象改變大小時(shí)觸發(fā)事件LostFocus當(dāng)控件對(duì)象失去焦點(diǎn)時(shí)觸發(fā)事件TimerTimer對(duì)象每個(gè)n毫秒將自動(dòng)觸發(fā)事件,n值由Interval屬性設(shè)定14表單設(shè)計(jì)及運(yùn)行 15表單的創(chuàng)建與運(yùn)行 表單實(shí)際上就是Visual FoxPro系統(tǒng)提供的一個(gè)容器,它可以加入許多其他的控件對(duì)象和

12、容器對(duì)象。 16一、用表單設(shè)計(jì)器創(chuàng)建表單 1打開(kāi)表單設(shè)計(jì)器 2表單控件工具欄 3設(shè)計(jì)表單中的對(duì)象 (1)添加控件對(duì)象 (2)刪除表單中的對(duì)象 (3)設(shè)置對(duì)象屬性4表單設(shè)計(jì)實(shí)例【例】設(shè)計(jì)一個(gè)如前圖所示的表單,實(shí)現(xiàn)學(xué)生信息的瀏覽。本示例是設(shè)計(jì)一個(gè)“學(xué)生信息瀏覽”程序,涉及到對(duì)學(xué)生表的訪問(wèn),這里暫時(shí)不做數(shù)據(jù)的連接。 17二、用表單向?qū)?chuàng)建表單1打開(kāi)表單向?qū)?(1)在項(xiàng)目項(xiàng)目管理器中打開(kāi)。 (2)在工具菜單中打開(kāi)。2用表單向?qū)гO(shè)計(jì)表單【例】用表單向?qū)瓿陕毠ば畔g覽。3用一對(duì)多表單向?qū)гO(shè)計(jì)表單當(dāng)我們需要針對(duì)兩個(gè)存在一對(duì)多關(guān)系的表創(chuàng)建表單時(shí),就要選擇一對(duì)多表單向?qū)Я恕?【例】使用一對(duì)多表單向?qū)Ы⒁粋€(gè)職

13、工工資情況的表單程序。18三、用表單生成器創(chuàng)建表單1快速表單【例】用表單生成器設(shè)計(jì)一個(gè)表單。2快速添加字段19四、運(yùn)行表單 在表單設(shè)計(jì)器中運(yùn)行表單在程序中運(yùn)行表單通過(guò)菜單運(yùn)行表單20設(shè)置表單一、表單的屬性屬性名稱(chēng)說(shuō)明AlwaysOnTop控制表單是否總在其他窗口之上AutoCenter控制表單初始化時(shí)是否自動(dòng)居中BackColor設(shè)置表單窗口顏色BorderStyle設(shè)置表單的邊框類(lèi)型Caption設(shè)置表單的標(biāo)題文字Closable控制用戶是否能通過(guò)單擊“關(guān)閉”框來(lái)關(guān)閉表單MaxButton控制表單是否有最大化按鈕MinButton控制表單是否有最小化按鈕Movable控制表單是否能夠移動(dòng)Sc

14、aleMode控制對(duì)象的度量單位是foxels或是象素Scrollbars控制表單滾動(dòng)條的類(lèi)型TitleBar控制表單是否在頂部顯示標(biāo)題欄ShowWindow控制是否顯示表單WindowState控制表單的狀態(tài)是最小化、最大化或正常狀態(tài)21二、表單的事件與方法 事件或方法名稱(chēng)說(shuō) 明Init事件建立表單時(shí)觸發(fā)Destory事件釋放表單時(shí)觸發(fā)Click事件單擊表單時(shí)觸發(fā)Show方法顯示表單Hide方法隱藏表單Release方法釋放表單Refresh方法刷新表單22三、數(shù)據(jù)環(huán)境 當(dāng)需要設(shè)計(jì)針對(duì)數(shù)據(jù)表操作的表單時(shí),就需要設(shè)置表單的數(shù)據(jù)環(huán)境。數(shù)據(jù)環(huán)境是一個(gè)容器對(duì)象,它包含與表單向后作用的表或視圖,以及表單所要求的表之間的關(guān)系。 設(shè)置數(shù)據(jù)環(huán)境從數(shù)據(jù)環(huán)境

溫馨提示

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