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

下載本文檔

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

文檔簡(jiǎn)介

1、第6章 面向?qū)ο蟪绦蛟O(shè)計(jì) p1676.1 面向?qū)ο缶幊谈攀?6.2 Visual FoxPro中的類(lèi)和對(duì)象 6.3 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法 6.1 面向?qū)ο缶幊谈攀?.1.1 從面向過(guò)程到面向?qū)ο筮^(guò)程化程序設(shè)計(jì): 它是采用結(jié)構(gòu)化編程語(yǔ)句( 條件語(yǔ)句、循環(huán)語(yǔ)句等 )來(lái)編寫(xiě)的程序。 使用這類(lèi)方法設(shè)計(jì)的程序流程完全由程序員控制,使用者只能做由程序員預(yù)先安排好的事情。例:使用結(jié)構(gòu)化編程,求 S=1+2+3+100 clear s=0For i=1 to 100 step 1 s = s+iendfor? “s=” , s在求 S=1+2+3+100 過(guò)程中有兩個(gè)式子 S = S + i 每次在 S中加

2、一個(gè) i 。 i = i + 1 每次在 i 中加一個(gè) 1 。求 S=a(1)+a(2)+a(3)+a(100) clear s=0For i=1 to 100 step 1 S = S + a(i) endfor? “ S= ” , S 例1:輸入任意10個(gè)數(shù)要放在數(shù)組A中求出最大數(shù)并顯示出來(lái)。 有三個(gè)要求: 1、輸入數(shù)放在A數(shù)組中。 2、求出最大數(shù)。 3、顯示出來(lái)。 1、輸入數(shù)據(jù)放在A數(shù)組中。 clear DIMENSION A(10) For i = 1 to 10 INPUT A(+str(I,2)+)= TO A(i)endfor2、求出最大數(shù)。Max1=a(1) For i = 2

3、 to 10 if A(i) max1 max1 = A(i) & 每次使 A(1)最大 endif Endfor3、顯示最大數(shù)。 ? “ 10個(gè)數(shù)中最大數(shù)是:” ,max1 例2:用雙重循環(huán)顯示如下數(shù)字矩陣: 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4解:For i = 1 to 4 & 外循環(huán)控制打印4行 For j = 1 to 5 ? i & 內(nèi)循環(huán)每次打印出1行 Endfor?Endfor 例3:輸入任意10個(gè)數(shù)要放在數(shù)組A中然后由大到小排序并顯示出來(lái)。 有三個(gè)要求: 1、輸入數(shù)放在A數(shù)組中。 2、將A數(shù)組由大到小排序。 3、顯示出來(lái)。 1、輸入數(shù)

4、據(jù)放在A數(shù)組中。 clear DIMENSION A(10) For i = 1 to 10 INPUT A(+str(I,2)+)= TO A(i)endfor2、由大到小排序For j = 1 to 9 For i = j+1 to 10 if A(i) A(j) TT = A(j) A(j) = A(i) & A(i)和A(j)交換 A(i)= TT endif EndforEndfor3、按順序顯示。 For i = 1 to 10 ?A(+ STR(i,2)+)= ,A(i)Endfor 引例:求累加和: S=1+2+3+N 1、采用面向?qū)ο缶幊?( 演示 ) 2、面向?qū)ο缶幊痰闹饕?/p>

5、步驟 (1)、創(chuàng)建應(yīng)用程序界面表單; (2)、設(shè)置表單上需要的控件對(duì)象; (3)、設(shè)置各控件的屬性; (3)、編寫(xiě)必要控件的程序代碼; 面向?qū)ο蟪绦蛟O(shè)計(jì): 這類(lèi)程序設(shè)計(jì)思想是面向?qū)ο螅丛O(shè)計(jì)的重要任務(wù)在于描述對(duì)象。 程序是由事件如單擊、雙擊鼠標(biāo)等驅(qū)動(dòng)的,至于下一步的程序流向,則要看驅(qū)動(dòng)的是什么事件。 這類(lèi)程序由使用者控制程序流向。面向?qū)ο蟮木幊蹋╫bject oriented programming,OOP) 是通過(guò)對(duì)象的交互作用來(lái)實(shí)現(xiàn)程序設(shè)計(jì)的。在面向?qū)ο缶幊讨?,?duì)象是由類(lèi)來(lái)定義的。 第 6 章主要掌握五個(gè)概念: 1 類(lèi) 2 對(duì)象 3 屬性 4 事件 5 方法 1對(duì)象 ( P 167 ) 對(duì)

6、象(Object)是反映客觀事物屬性及行為特征的描述。 例如: 把某一臺(tái)電視機(jī)看成是一個(gè)對(duì)象。 把某一個(gè)程序窗口看成一個(gè)對(duì)象。 把某一個(gè)命令按鈕看成一個(gè)對(duì)象。2、 類(lèi)(Class): ( P 167 ) 類(lèi)是一組對(duì)象的屬性和行為特征的抽象描述。類(lèi)是具有共同屬性、共同操作性質(zhì)的對(duì)象的集合。 類(lèi)是對(duì)象的總描述;對(duì)象是類(lèi)的具體實(shí)例。 類(lèi)是抽象的,對(duì)象是具體的。 VFP提供 3 個(gè)類(lèi):基類(lèi)、基礎(chǔ)類(lèi)、向?qū)ь?lèi) ( P 171 )圓柱體紙圓柱體大理石圓柱體木圓柱體類(lèi)對(duì)象圓柱體.材質(zhì):紙質(zhì)圓柱體.材質(zhì):大理石圓柱體.材質(zhì):木質(zhì)圓柱體.材質(zhì):(可變)對(duì)象屬性類(lèi)屬性(1)類(lèi)的主要特性: ( P169 )封裝性 指

7、類(lèi)的內(nèi)部信息對(duì)用戶(hù)是隱蔽的。在類(lèi)的引用過(guò)程中,用戶(hù)只能看到封裝界面上的信息。子類(lèi) 一個(gè)子類(lèi)可以擁有父類(lèi)全部功能。繼承性 指通過(guò)繼承關(guān)系利用已有的類(lèi)構(gòu)造新類(lèi)?;?lèi):命令按鈕(CommandGroup)子類(lèi):命令按鈕(UserCmdGroup)對(duì)象:命令按鈕(cmd數(shù)據(jù)庫(kù)按鈕)繼承實(shí)體化(2)基類(lèi):分為容器類(lèi)和控件類(lèi)。(P172) 容器類(lèi)可以容納其它對(duì)象 控件類(lèi)不能容納其它對(duì)象。6.2.2 容器與非容器 (P172)1 容器類(lèi)容器類(lèi)是指可容納別的對(duì)象的類(lèi)。如表單屬于容器類(lèi),因?yàn)榭梢詫⑵渌鼘?duì)象,如命令按鈕、標(biāo)簽、文本框等放在它的內(nèi)部。2 控件類(lèi)控件類(lèi)的封裝比容器類(lèi)更為嚴(yán)密,但因此也喪失了一些靈活性。

8、控件類(lèi)沒(méi)有添加對(duì)象(addobject)方法。 生成對(duì)象的常用類(lèi) (P171) - Form 表單、 Label 標(biāo)簽、 TextBox 文本框、 CommandButton 命令按鈕、 CommandGroup 命令按鈕組、 . 對(duì)象名- 由 Name 屬性指定。 默認(rèn)對(duì)象名- 由系統(tǒng)默認(rèn)指定。如 Form1、 Form2、 Form3、 . Label1、 Label2、 Label3、 . Text1、 Text2、 Text3、. Command1、 Command2、 Command3、. 改變對(duì)象名- 改變 Name 屬性的值。 如將: 下列默認(rèn)對(duì)象改名: Label1-改為:ab

9、c Text1 -改為:Txt編號(hào) Text2 -改為:Txt姓名 Command1 -改為:comOK 對(duì)象的層次關(guān)系-引用對(duì)象 (P175) 絕對(duì)引用 格式: ( 表單集名 . ) 表單 . 對(duì)象 . 屬性 ( 表單集名 . ) 表單 . 對(duì)象 . 方法 如 Form1 . Text1 . Value FormSet1 . Form1 . Text1 . Value FormA. Refresh絕對(duì)引用舉例 : (P175) Form1 . Label1 . Caption = “1+2+.+” Form1 . Text1 . Value = 0 Form1. Release 相對(duì)引用 (

10、P175) 1、 This 表示當(dāng)前對(duì)象 如: This . Form1 . Refresh 2、 ThisForm 表示當(dāng)前表單 如: ThisForm . Text1. Value 相對(duì)引用 (續(xù)上) 3、 ThisFormSet 表示當(dāng)前表單集 4、 Parent 表示父對(duì)象(上一級(jí)對(duì)象) 5、 ActiveControl 表示活動(dòng)控件 6、 ActiveForm 表示當(dāng)前活動(dòng)表單相對(duì)引用舉例 : (P175)ThisForm . Label1 . Caption = “1+2+.+” This. Form1 . Text1 . Value = 0 ThisForm. Refresh 3

11、、 屬性: 屬性 描述對(duì)象特征的參數(shù)。 例如:窗口具有以下屬性: .窗口的標(biāo)題及窗口的大?。?.窗口的前景和背景顏色; .窗口中所顯示信息的內(nèi)容及格式; .窗口中顯示漢字的字體、字形、字號(hào);表6.1 ( P168 ) 列出了一個(gè)命令按鈕可能有的屬性。 (1) 屬性設(shè)置: 1、在設(shè)計(jì)時(shí)(通過(guò)屬性窗口)設(shè)置; ( 下一章專(zhuān)門(mén)介紹,是重點(diǎn)操作內(nèi)容 ) 2、在運(yùn)行時(shí)(通過(guò)命令)進(jìn)行設(shè)置。 、直接設(shè)置 、結(jié)構(gòu)化設(shè)置(2)屬性設(shè)置舉例 (P176) 對(duì)象屬性通過(guò)命令設(shè)置也可以分為直接設(shè)置和結(jié)構(gòu)化設(shè)置。(1) 直接設(shè)置對(duì)象屬性 對(duì)象 . 屬性= ThisForm . Label1 . Caption = “

12、1+2+.+” This. Form1 . Text1 . Value = 0 ThisForm . Command1 . Enabled = .T.例: 下列語(yǔ)句設(shè)置 myform 表單中 txt1 文本框 的各種屬性: myform.txt1.Value=DATE( ) & 顯示當(dāng)前日期 myform.txt1.Enabled=.T. & 控件有效 myform.txt1.ForeColor=RGB(0,0,4) &黑色文本 如果 myform 包含在一個(gè)表單集( myformSet)中,則需要在父路徑上指明,例如: myformSet. myform.txt1.Value=DATE( )

13、(2) 結(jié)構(gòu)化設(shè)置屬性 用 WITH . ENDWITH 結(jié)構(gòu)設(shè)置多個(gè)屬性。例:設(shè)置 myform 表單中 txt1 文本框的各種屬性WITH myform.txt1 .Value = DATE( ) & 顯示當(dāng)前日期 .Enabled = .T. & 控件有效 .ForeColor = RGB(0,0,4) &黑色文本ENDWITH 4、 調(diào)用對(duì)象方法 (P176) 、什么叫對(duì)象方法 附屬于對(duì)象的行為和動(dòng)作。 如: Release 釋放刪除表單。 Refresh 重新繪制表單,刷新所有值。 、調(diào)用對(duì)象方法 Thisform.txt1.SetFocus & 焦點(diǎn)設(shè)置在txt1上。 Thisform.Refresh & 刷新當(dāng)前表單。 Thisform.Release & 關(guān)閉當(dāng)前表單。 5、 VFP中的事件 (P190) 1、事件 每個(gè)對(duì)象可能用于識(shí)別和響應(yīng)的某些行為和動(dòng)作。 如:Click 叫單擊事件 2、事件的觸發(fā): 、用戶(hù)操作觸發(fā); 、程序觸發(fā);每個(gè)對(duì)象都可以對(duì)被稱(chēng)為事件的動(dòng)作進(jìn)行識(shí)別和響應(yīng)。事件可以由一個(gè)用戶(hù)動(dòng)作產(chǎn)生,如單擊鼠標(biāo)或按下一個(gè)鍵;也可以由程序代碼或系

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論