第5章程序設(shè)計_第1頁
第5章程序設(shè)計_第2頁
第5章程序設(shè)計_第3頁
第5章程序設(shè)計_第4頁
第5章程序設(shè)計_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第5章章程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ) 第第 5 章章 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ) 5.1 程序設(shè)計概述程序設(shè)計概述 5.2 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計 5.3 面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)5.1 程序設(shè)計概述程序設(shè)計概述 例例 計算計算100以內(nèi)的奇數(shù)和以內(nèi)的奇數(shù)和S=1+3+5+99, 100的階乘的階乘P=1*2*3*100 #DEFINE N 100 & 設(shè)置循環(huán)終值常量設(shè)置循環(huán)終值常量 s=0 & 累加器,初始化為累加器,初始化為0 * 以下循環(huán)計算以下循環(huán)計算n以內(nèi)的奇數(shù)和以內(nèi)的奇數(shù)和 FOR i = 1 to N STEP 2 s = s + i ENDFOR ? N ,

2、 “ 以內(nèi)的奇數(shù)和以內(nèi)的奇數(shù)和S=” ,S *以下循環(huán)計算以下循環(huán)計算N的階乘的階乘 p=1 & 累乘器,初始化為累乘器,初始化為1 FOR I =1 TO N p = p * I ENDFOR ? N, “的階乘的階乘=”, p 程序設(shè)計程序設(shè)計 利用系統(tǒng)提供的設(shè)計利用系統(tǒng)提供的設(shè)計工具工具,按照程序設(shè)計語言的,按照程序設(shè)計語言的規(guī)規(guī)范范描述解決問題的描述解決問題的算法算法并進(jìn)行并進(jìn)行程序編寫程序編寫的過程。的過程。 5.1.1 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計 主要思想:主要思想: 自頂向下、逐步求精、模塊化和限制使用轉(zhuǎn)移語句自頂向下、逐步求精、模塊化和限制使用轉(zhuǎn)移語句 程序流程:程序流程:

3、順序、分支、循環(huán)順序、分支、循環(huán) 開發(fā)過程:開發(fā)過程: 從從“做什么做什么”到到“如何做如何做” 優(yōu)點:優(yōu)點: 系統(tǒng)結(jié)構(gòu)性強、便于設(shè)計和理解系統(tǒng)結(jié)構(gòu)性強、便于設(shè)計和理解 缺點:缺點: 維護(hù)困難維護(hù)困難 5.1.2 面向?qū)ο蟮某绦蛟O(shè)計方法(面向?qū)ο蟮某绦蛟O(shè)計方法(OOP) 基本思想:基本思想: 客觀世界客觀世界對象(對象類)的實例對象(對象類)的實例 Oop的構(gòu)成的構(gòu)成 對象對象 是數(shù)據(jù)及作用于這些數(shù)據(jù)之上的操作結(jié)合在一起所構(gòu)成的是數(shù)據(jù)及作用于這些數(shù)據(jù)之上的操作結(jié)合在一起所構(gòu)成的獨立實體的總和。獨立實體的總和。 類類 是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的描述。是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作

4、的對象的描述。 開發(fā)過程:開發(fā)過程: 從從“用什么做用什么做”到到“要做什么要做什么” 表單、對象(表單、對象(“用什么做用什么做”) 事件過程(事件過程( “要做什么要做什么”) 優(yōu)點優(yōu)點 簡化程序設(shè)計,降低開發(fā)和維護(hù)的費用簡化程序設(shè)計,降低開發(fā)和維護(hù)的費用 提高程序代碼的可重用性提高程序代碼的可重用性 OOP的三個重要特性的三個重要特性 封裝性封裝性 表單屬性表單屬性 繼承性繼承性 類與類之間的繼承類與類之間的繼承 多態(tài)性多態(tài)性 方法傳遞參數(shù)的不同實現(xiàn)不同操作方法傳遞參數(shù)的不同實現(xiàn)不同操作5.2 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計 5.2.1 概述概述 一、程序一、程序 程序程序 是一組完成指定

5、任務(wù)的命令序列集合。是一組完成指定任務(wù)的命令序列集合。 組成組成 說明部分、初始化部分、任務(wù)執(zhí)行部分(主體)、環(huán)境恢復(fù)部說明部分、初始化部分、任務(wù)執(zhí)行部分(主體)、環(huán)境恢復(fù)部分、程序退出指令構(gòu)成。分、程序退出指令構(gòu)成。 算法算法 即實現(xiàn)程序任務(wù)的方法。即實現(xiàn)程序任務(wù)的方法。 流程圖流程圖 通過指定的圖形表達(dá)符號描述程序的執(zhí)行方法和過程。通過指定的圖形表達(dá)符號描述程序的執(zhí)行方法和過程。 VFP提供了三種工作方式:提供了三種工作方式: 菜單方式菜單方式 命令方式命令方式 程序文件方式程序文件方式 對于較為復(fù)雜的數(shù)據(jù)調(diào)用和處理過程必須用編對于較為復(fù)雜的數(shù)據(jù)調(diào)用和處理過程必須用編程方式,利用預(yù)置的程序

6、解決問題。程方式,利用預(yù)置的程序解決問題。 二、進(jìn)入程序編輯二、進(jìn)入程序編輯 “新建新建”“程序程序”; 項目管理器項目管理器“代碼代碼” “程序程序”“新建新建”; 命令方式:命令方式:Modify command 此外,通過各種此外,通過各種VFP設(shè)計器的代碼設(shè)計工具也設(shè)計器的代碼設(shè)計工具也可進(jìn)行程序代碼的編制可進(jìn)行程序代碼的編制 三、運行和調(diào)用程序三、運行和調(diào)用程序 命令方式:命令方式:DO ; 在主菜單或項目管理器下,在主菜單或項目管理器下,“程序程序”“運運行行”輸入程序文件名輸入程序文件名 快捷鍵快捷鍵 四、程序調(diào)試四、程序調(diào)試 當(dāng)遇到下列情況之一,程序終止運行返回到調(diào)用環(huán)境:當(dāng)遇

7、到下列情況之一,程序終止運行返回到調(diào)用環(huán)境: 文件的末尾文件的末尾 返回到調(diào)用行的下一行;返回到調(diào)用行的下一行; RETURN 返回到調(diào)用行的下一行;返回到調(diào)用行的下一行; RETRY 返回到調(diào)用行,再次調(diào)用;返回到調(diào)用行,再次調(diào)用; 中斷語句:中斷語句:CANCEL 中斷當(dāng)前程序的運行,并返回到命令窗口。通常與條件語句配中斷當(dāng)前程序的運行,并返回到命令窗口。通常與條件語句配合使用。合使用。 掛起語句:掛起語句: SUSPEND 暫停當(dāng)前程序的執(zhí)行,并返回到系統(tǒng)命令窗口。暫停當(dāng)前程序的執(zhí)行,并返回到系統(tǒng)命令窗口。 恢復(fù)執(zhí)行語句:恢復(fù)執(zhí)行語句:RESUME 恢復(fù)被恢復(fù)被SUSPEND掛起的程序,

8、使之從暫停的位置繼續(xù)執(zhí)行掛起的程序,使之從暫停的位置繼續(xù)執(zhí)行 QUIT 返回到操作系統(tǒng)(結(jié)束程序,退出返回到操作系統(tǒng)(結(jié)束程序,退出VFP);); “程序程序” “取消取消” 五、注釋五、注釋 1程序注釋:程序注釋: NOTE 或或 * 2語句注釋:語句注釋: & 六、基本輸出語句六、基本輸出語句 1.換行輸出語句:?換行輸出語句:? 分別計算表達(dá)式列表的值,并將結(jié)果輸出在主窗口分別計算表達(dá)式列表的值,并將結(jié)果輸出在主窗口的當(dāng)前光標(biāo)下一行。各表達(dá)式以的當(dāng)前光標(biāo)下一行。各表達(dá)式以“,”號分隔。號分隔。 2.同行輸出語句:?同行輸出語句:? 分別計算表達(dá)式列表的值,并自主窗口當(dāng)前光標(biāo)所分別計算表達(dá)

9、式列表的值,并自主窗口當(dāng)前光標(biāo)所在行輸出結(jié)果。各表達(dá)式以在行輸出結(jié)果。各表達(dá)式以“,”號分隔。號分隔。 3.定位輸出語句:定位輸出語句: SAY 在在指定位置輸出指定位置輸出的值。的值。 5.2.2 程序結(jié)構(gòu)程序結(jié)構(gòu) 分類分類 順序結(jié)構(gòu)順序結(jié)構(gòu) 分支結(jié)構(gòu)分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 過程過程/函數(shù)調(diào)用函數(shù)調(diào)用 例例1: Use js Append blank Edit Use 一、分支結(jié)構(gòu)一、分支結(jié)構(gòu) 單分支單分支 IF ENDIF 雙分支雙分支 IF ELSE ENDIF 多分枝多分枝 DO CASE CASE CASE CASE otherwise ENDCASE 二、循環(huán)結(jié)構(gòu)二、循環(huán)結(jié)構(gòu)

10、1條件循環(huán)條件循環(huán) DO WHILE ENDDO 當(dāng)當(dāng)為為“真真”時,執(zhí)行時,執(zhí)行;否;否則,結(jié)束循環(huán)并執(zhí)行則,結(jié)束循環(huán)并執(zhí)行ENDDO后面的命令后面的命令 E.g. DO WHILE .T. ENDDO 記錄指針由記錄指針由EXIT 或或LOOP控制??刂?。 DO WHILE .NOT.EOF() / .NOT.BOF() 記錄指記錄指 針由針由SKIP控制??刂啤?2計數(shù)循環(huán)計數(shù)循環(huán) FOR =TO STEP ENDFOR / NEXT 當(dāng)循環(huán)變量不大于終值時,循環(huán)執(zhí)行當(dāng)循環(huán)變量不大于終值時,循環(huán)執(zhí)行,并以,并以累計實際循環(huán)次數(shù)(循環(huán)變量累計實際循環(huán)次數(shù)(循環(huán)變量值)。值)。 循環(huán)變量無需

11、事先定義;初值、終值和步長均循環(huán)變量無需事先定義;初值、終值和步長均為數(shù)值表達(dá)式,可為正、負(fù)或小數(shù);步長值缺為數(shù)值表達(dá)式,可為正、負(fù)或小數(shù);步長值缺省為省為1。 3指針循環(huán)指針循環(huán) SCAN FOR WHILE ENDSCAN 在指定紀(jì)錄范圍內(nèi),用數(shù)據(jù)記錄指針控制循環(huán)在指定紀(jì)錄范圍內(nèi),用數(shù)據(jù)記錄指針控制循環(huán)次數(shù)次數(shù)(對紀(jì)錄逐個掃描,直至最后一條紀(jì)錄,即對紀(jì)錄逐個掃描,直至最后一條紀(jì)錄,即EOF()為真為真)。 SCAN循環(huán)與循環(huán)與DO WHILE循環(huán)的區(qū)別。循環(huán)的區(qū)別。 注意:注意: 1. DO WHILE和和ENDDO 、FOR和和ENDFOR、SCAN和和ENDSCAN必須配對使用;必須配

12、對使用; 2. 循環(huán)語句可以嵌套;循環(huán)語句可以嵌套; 3. 應(yīng)是數(shù)值型變量;應(yīng)是數(shù)值型變量; 4. EXIT(跳出循環(huán))、(跳出循環(huán))、LOOP(回到循環(huán)開始(回到循環(huán)開始處)可用于循環(huán)過程控制處)可用于循環(huán)過程控制 三、過程與用戶自定義函數(shù)三、過程與用戶自定義函數(shù) (一)主程序和子程序(一)主程序和子程序 一個完整的程序可能由若干個程序文件構(gòu)成,把每個程一個完整的程序可能由若干個程序文件構(gòu)成,把每個程序看成是整個操作的一個環(huán)節(jié),也是一個相對獨立的部序看成是整個操作的一個環(huán)節(jié),也是一個相對獨立的部分,并根據(jù)調(diào)用關(guān)系的主次,分為主程序和子程序。分,并根據(jù)調(diào)用關(guān)系的主次,分為主程序和子程序。 子程

13、序調(diào)用語句子程序調(diào)用語句 DO with 返回語句返回語句 RETURN TO MASTER TO MASTER 返回到最高級調(diào)用者返回到最高級調(diào)用者 嵌套的嵌套的DO調(diào)用層數(shù)為調(diào)用層數(shù)為128層。層。 (二)過程(二)過程 是可重復(fù)調(diào)用具有獨立功能的程序段(模塊)。是可重復(fù)調(diào)用具有獨立功能的程序段(模塊)??梢允浅绦虻囊徊糠?,也可以作為獨立的程序可以是程序的一部分,也可以作為獨立的程序文件。文件。 過程可以放在程序中任何位置,但必須在主調(diào)過程可以放在程序中任何位置,但必須在主調(diào)用程序(語句)之后。用程序(語句)之后。 過程必須由過程語句引出,其調(diào)用命令與子程過程必須由過程語句引出,其調(diào)用命令

14、與子程序相同,只是應(yīng)以過程名調(diào)用。序相同,只是應(yīng)以過程名調(diào)用。 過程文件是將多個過程集中在一個程序文件中過程文件是將多個過程集中在一個程序文件中而形成的程序文件,可一次性打開調(diào)入多個過而形成的程序文件,可一次性打開調(diào)入多個過程,從而提高執(zhí)行效率。程,從而提高執(zhí)行效率。 建立過程文件與建立程序的方法相同,文件擴建立過程文件與建立程序的方法相同,文件擴展名也是展名也是.prg,但其具有特殊的文件結(jié)構(gòu)。,但其具有特殊的文件結(jié)構(gòu)。 過程結(jié)構(gòu):過程結(jié)構(gòu): PROCEDURE PARAMETERS RETURN eExpression ENDPROC 舉例:舉例: PROCEDURE gc1 PARAME

15、TERS x,y z=x+y RETURN z ENDPROC .打開、關(guān)閉過程語句打開、關(guān)閉過程語句 SET PROCEDURE TO CLOSE PROCEURE (三)自定義函數(shù)(三)自定義函數(shù) 函數(shù):函數(shù): FUNCTION PARAMETERS RETURN eExpression ENDFUNC 20120423 (四)(四)RETURN: 返回語句,即返回過程或函數(shù)的調(diào)用處。返回語句,即返回過程或函數(shù)的調(diào)用處。 (1)語句格式:語句格式: RETURN eExpression (2)語句功能:語句功能: 返回表達(dá)式的值給調(diào)用程序返回表達(dá)式的值給調(diào)用程序,并將執(zhí)行目標(biāo)定位到調(diào)用程序

16、中并將執(zhí)行目標(biāo)定位到調(diào)用程序中調(diào)用命令的下一語句調(diào)用命令的下一語句 用用RETURN語句返回一個值給調(diào)用程序;語句返回一個值給調(diào)用程序; 省略省略RETURN,其缺省的返回值為真(,其缺省的返回值為真(.T.) 函數(shù)的返回值可以直接打印在活動窗口中,也可函數(shù)的返回值可以直接打印在活動窗口中,也可 以用一個變量接收下來以用一個變量接收下來 舉例:舉例:P58 (五)調(diào)用(五)調(diào)用: 調(diào)用過程語句調(diào)用過程語句: DO 過程名過程名 WITH (參數(shù)參數(shù)) ?函數(shù)名?函數(shù)名(參數(shù)參數(shù)) 語句功能:語句功能: 執(zhí)行以過程名執(zhí)行以過程名(或函數(shù)名或函數(shù)名)為名的過程為名的過程(函數(shù)函數(shù))。即執(zhí)行已有的。

17、即執(zhí)行已有的過程或函數(shù)。過程或函數(shù)。 提示提示: 若函數(shù)或過程集中保存在某程序文件中若函數(shù)或過程集中保存在某程序文件中,則應(yīng)使用如則應(yīng)使用如下命令來訪問下命令來訪問 SET PROCEDURE TO 程序名程序名 注意:注意:p59 查找順序查找順序 (2)若是一個若是一個UDF獨立的保存為一個程序文件獨立的保存為一個程序文件: 則可省去由則可省去由PROCEDURE / FUNCTION 命令定義命令定義的過程的過程/函數(shù)名函數(shù)名,該程序文件名即可作為過程該程序文件名即可作為過程(函數(shù)函數(shù))名名 (3) 向過程或函數(shù)傳遞參數(shù)向過程或函數(shù)傳遞參數(shù) 使過程和函數(shù)可以接受參數(shù)使過程和函數(shù)可以接受參

18、數(shù) 定義時第一個可執(zhí)行語句必須為定義時第一個可執(zhí)行語句必須為PARAMETERS語句語句 最多可傳遞最多可傳遞27個參數(shù)個參數(shù) 調(diào)用時使用參數(shù)調(diào)用時使用參數(shù) 例例: DO Myudf WITH . . . ?Myudf( . . . ) 示例示例 S=0 For i=1 to 5 s=s+fjc(i) Endfor ?s Func fjc Para x P=1 For n=1 to x P=p*x Endfor Retu p endfunc 過程和函數(shù)可以接受參數(shù):常量、變量、數(shù)組、過程和函數(shù)可以接受參數(shù):常量、變量、數(shù)組、表達(dá)式等表達(dá)式等 參數(shù)傳遞的兩種方式參數(shù)傳遞的兩種方式 按引用傳遞方式

19、(過程默認(rèn)方式)按引用傳遞方式(過程默認(rèn)方式) 將地址傳送給將地址傳送給UDF SET UDFPARMS TO REFERENCE 按值傳遞方式(函數(shù)默認(rèn)方式)按值傳遞方式(函數(shù)默認(rèn)方式) 將值直接傳送給將值直接傳送給UDF SET UDFPARMS TO VALUE 例子例子:p60 強制設(shè)定強制設(shè)定以值傳遞方式以值傳遞方式或或引用傳遞方式引用傳遞方式 用用括號括起括號括起一個變量,則設(shè)定按值傳遞;在一一個變量,則設(shè)定按值傳遞;在一個個變量前加變量前加符號符號,可以設(shè)定以引用傳遞方式,可以設(shè)定以引用傳遞方式傳遞傳遞 默認(rèn)情況下,變量以引用傳遞方式向過程傳遞,默認(rèn)情況下,變量以引用傳遞方式向過

20、程傳遞,以值傳遞方式向一個以值傳遞方式向一個UDF傳遞傳遞prg1(star)Do gc1?gc2()Do gc1(end)gc1(過程)gc2(函數(shù))保存在主程序之后集中保存在一個程序里( prg2 )過程文件gc1gc2gc3獨立保存在一個程序里gc1(過程)gc2 (函數(shù))gc3 (函數(shù)) 過程是為完成某個操作過程而編寫的代碼,過程是為完成某個操作過程而編寫的代碼, 函數(shù)則用來計算并返回一個值。在函數(shù)則用來計算并返回一個值。在VFP中,這中,這二者區(qū)別并不大。二者區(qū)別并不大。 5.3 面向?qū)ο蟮某绦蛟O(shè)計方法面向?qū)ο蟮某绦蛟O(shè)計方法結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法 本質(zhì):功能設(shè)計,自頂而

21、下,功能分解,本質(zhì):功能設(shè)計,自頂而下,功能分解,從外部功能上模擬客觀世界從外部功能上模擬客觀世界 優(yōu)點:結(jié)構(gòu)清晰,便于設(shè)計和理解優(yōu)點:結(jié)構(gòu)清晰,便于設(shè)計和理解 過程:做什么過程:做什么如何做如何做例:如何完成裝修房屋的工作?例:如何完成裝修房屋的工作?電電買電線、開關(guān)買電線、開關(guān)完成布線完成布線水水買水管、潔具、瓷磚買水管、潔具、瓷磚安裝水管、鋪瓷安裝水管、鋪瓷 磚、安裝潔具磚、安裝潔具木木買木材買木材做家具做家具買地板買地板鋪地板鋪地板漆漆買油漆買油漆漆家具、漆地板漆家具、漆地板 每一個工序,都必須了解細(xì)節(jié),比如買什么樣的材料,做每一個工序,都必須了解細(xì)節(jié),比如買什么樣的材料,做家具時,要

22、把板子做成多大,哪一塊木板和哪一塊木板要家具時,要把板子做成多大,哪一塊木板和哪一塊木板要釘再一起,結(jié)果房主變成了各工種的全才。釘再一起,結(jié)果房主變成了各工種的全才。 程序員:按順序做所有的事程序員:按順序做所有的事面向?qū)ο蟮某绦蛟O(shè)計面向?qū)ο蟮某绦蛟O(shè)計 本質(zhì):類和對象的綜合,本質(zhì):類和對象的綜合,自底向上自底向上,從內(nèi)部,從內(nèi)部結(jié)構(gòu)上模擬客觀世界結(jié)構(gòu)上模擬客觀世界 優(yōu)點:簡化程序設(shè)計,提高程序代碼的重用優(yōu)點:簡化程序設(shè)計,提高程序代碼的重用性性 過程:用什么做過程:用什么做要做什么要做什么 (類、對象)(類、對象) (具體去解決某一個任務(wù))(具體去解決某一個任務(wù))例:如何完成裝修房屋的工作?例

23、:如何完成裝修房屋的工作?用什么做?用什么做?電工、水工、瓦匠、木工、漆匠(類)電工、水工、瓦匠、木工、漆匠(類)需要需要 找到某個電工、水工、瓦匠、木工、漆匠(對象)找到某個電工、水工、瓦匠、木工、漆匠(對象)要做什么?要做什么? 用戶自己決定,要達(dá)到什么效果用戶自己決定,要達(dá)到什么效果 只要從類中生成對象,告訴對象要做的事,房主只要從類中生成對象,告訴對象要做的事,房主不必操心各工種的順序,由各對象自己去協(xié)調(diào);不必操心各工種的順序,由各對象自己去協(xié)調(diào);不必關(guān)心細(xì)節(jié),使用什么牌子的潔具、什么品種不必關(guān)心細(xì)節(jié),使用什么牌子的潔具、什么品種的油漆。的油漆。 程序員:使用定義好的類,達(dá)到什么效果,

24、程序員:使用定義好的類,達(dá)到什么效果, 不用管發(fā)生了什么事,如何處理!不用管發(fā)生了什么事,如何處理!5.3.1 類和對象類和對象 一、類一、類(CLASS) 1.概念概念 定義了對象特征以及對象外觀和行為的定義了對象特征以及對象外觀和行為的模板模板,刻劃,刻劃了一組具有共同特性的對象。了一組具有共同特性的對象。 對象對象(OBJECT) :是類的一個:是類的一個實例實例,包括了數(shù)據(jù)和,包括了數(shù)據(jù)和過程(操作)過程(操作) 比較:比較: 類是類是靜態(tài)靜態(tài)的概念,對象是的概念,對象是動態(tài)動態(tài)的概念的概念 類是類是抽象抽象的,具有固定的特征;的,具有固定的特征;對象是對象是具體具體的,不同的對象具有

25、不同的特征和行為的,不同的對象具有不同的特征和行為 2.類的分類類的分類 P151 最小屬性集最小屬性集 1)控件:是一個可以以圖形化的方式顯示出來并能與控件:是一個可以以圖形化的方式顯示出來并能與用戶進(jìn)行交互的對象。用戶進(jìn)行交互的對象。 2)容器:可看成是一種特殊的控件,它能包容其他的容器:可看成是一種特殊的控件,它能包容其他的控件或容器??丶蛉萜鳌?3)層次:層次:對象對象的層次關(guān)系指的是包容與被包容的關(guān)系。的層次關(guān)系指的是包容與被包容的關(guān)系。 類類的層次關(guān)系指的是繼承與被繼承的關(guān)系的層次關(guān)系指的是繼承與被繼承的關(guān)系 3.類的特點類的特點 繼承性繼承性 多態(tài)性多態(tài)性 封裝性封裝性 二、對

26、象二、對象 1、概述、概述 對象是面向?qū)ο笫较到y(tǒng)中運行時刻的基本成份,它對象是面向?qū)ο笫较到y(tǒng)中運行時刻的基本成份,它是屬性與行為(即數(shù)據(jù)與操作)以及與其他對象的是屬性與行為(即數(shù)據(jù)與操作)以及與其他對象的接口的封裝體。接口的封裝體。 每個對象都有屬性,以及與之相關(guān)的事件和方法,每個對象都有屬性,以及與之相關(guān)的事件和方法,通過它們來處理對象。通過它們來處理對象。 可以新建屬性和方法。可以新建屬性和方法。 事件集固定的,不能新建事件。事件集固定的,不能新建事件。P151 2.對象的屬性對象的屬性 概念概念 對象的對象的特征特征及某一方面的及某一方面的行為(狀態(tài))行為(狀態(tài))汽車汽車顏色、載重顏色、

27、載重停、行狀態(tài)停、行狀態(tài)電話電話顏色、大小顏色、大小拿起、掛上狀態(tài)拿起、掛上狀態(tài) 來源:來源: 所基于的類的屬性、定義的所基于的類的屬性、定義的新屬性新屬性 設(shè)置:設(shè)置: 設(shè)計階段(屬性窗口)設(shè)計階段(屬性窗口) 運行階段(代碼運行階段(代碼 對象對象.屬性屬性=值)值) 有些屬性不能進(jìn)行設(shè)置,僅是只讀(表單集的表單數(shù))有些屬性不能進(jìn)行設(shè)置,僅是只讀(表單集的表單數(shù)) 3.設(shè)置對象屬性設(shè)置對象屬性 方法:方法:P154 屬性窗口(設(shè)計)屬性窗口(設(shè)計) 例如:表單的背景色例如:表單的背景色 代碼中(運行)代碼中(運行) 單個屬性單個屬性對象對象.屬性屬性=值值 do form form1 wi

28、th hello,400,200 一個對象的多個屬性一個對象的多個屬性 WITH 對象名對象名 .屬性名屬性名1=值值1 .屬性名屬性名2=值值2 ENDWITH 有些屬性在設(shè)計時是只讀的,只能在代碼中修改有些屬性在設(shè)計時是只讀的,只能在代碼中修改 4.對象的事件對象的事件P155 P157 概念概念 對象可以識別和響應(yīng)的對象可以識別和響應(yīng)的動作動作,可以編寫代碼對動作進(jìn)行,可以編寫代碼對動作進(jìn)行響應(yīng)?;愖钚∈录?、核心事件集響應(yīng)。基類最小事件集、核心事件集 來源:來源: 事先定義好的動作(事件集合固定),事先定義好的動作(事件集合固定),不能創(chuàng)建新事件。不能創(chuàng)建新事件。 產(chǎn)生:產(chǎn)生: 外界

29、對本對象施加動作。外界對本對象施加動作。用戶動作用戶動作例:電話例:電話 提話筒,放話筒提話筒,放話筒程序代碼程序代碼 或或 系統(tǒng)系統(tǒng)順序順序: 5.對象的方法對象的方法 概念:概念: 是對象能夠執(zhí)行的一個操作,是和對象相聯(lián)系的過程(函數(shù))。是對象能夠執(zhí)行的一個操作,是和對象相聯(lián)系的過程(函數(shù))。 來源:來源: 系統(tǒng)定義、系統(tǒng)定義、用戶新建。用戶新建。 當(dāng)方法名為事件名時當(dāng)方法名為事件名時,認(rèn)為是事件處理程序認(rèn)為是事件處理程序! 常用方法常用方法clear、 hide、refresh、release 調(diào)用:調(diào)用: 一旦創(chuàng)建了對象,便可以通過對對象一旦創(chuàng)建了對象,便可以通過對對象屬性的修改,方法

30、程序的調(diào)屬性的修改,方法程序的調(diào)用用處理對象。處理對象。 格式:格式: 引用對象引用對象.方法程序方法程序 引用對象引用對象P153 絕對引用:絕對引用:最高層次開始的絕對地址最高層次開始的絕對地址 表單集對象名表單集對象名.表單名表單名 abc . form1 相對引用:相對于某個容器層次的引用相對引用:相對于某個容器層次的引用 在某個對象的方法程序中在某個對象的方法程序中 關(guān)鍵字:關(guān)鍵字:THIS、THISFORM、THISFORMSET、PARENT ACTIVEFORM、ACTIVEPAGE、ACTIVECONTROL _SCREEN引用(代表主屏對象)引用(代表主屏對象) 例:不知道

31、表單名的情況下,處理表單及表單中活動的控件。例:不知道表單名的情況下,處理表單及表單中活動的控件。 _SCREEN.ACTIVEFORM _SCREEN.ACTIVEFORM.ACTIVECONTROL屬性或關(guān)鍵字引用屬性或關(guān)鍵字引用ActivePageParentThisThisFormThisFormset 如果對象已經(jīng)創(chuàng)建,可在任何地方調(diào)用如果對象已經(jīng)創(chuàng)建,可在任何地方調(diào)用 引用對象引用對象.方法程序方法程序(參數(shù)參數(shù)1, 參數(shù)參數(shù)2) 例:例:thisform.move(100,100,400,200) 無參數(shù)情況可以省略括號無參數(shù)情況可以省略括號, 即引用對象即引用對象.方法程方法程

32、序序 例例: thisform.show thisform.text1.setfocus 有返回值情況必須以括號結(jié)尾有返回值情況必須以括號結(jié)尾 例例: 為表單添加了一個方法為表單添加了一個方法SDATE(), 內(nèi)容返回當(dāng)前內(nèi)容返回當(dāng)前的 日 期的 日 期 , 以以 y y y y 年年 m m 月月 n n 日 的 形 式日 的 形 式 thisform.sdate() 三、三、 對象對事件的響應(yīng)對象對事件的響應(yīng) 1、響應(yīng)方式:、響應(yīng)方式:事件發(fā)生事件發(fā)生事件處理程序執(zhí)行(與事件相關(guān)的方法)事件處理程序執(zhí)行(與事件相關(guān)的方法) 2、事件的產(chǎn)生:、事件的產(chǎn)生: 外界對本對象施加動作外界對本對象施

33、加動作 用戶動作用戶動作例:電話例:電話 提話筒,放話筒提話筒,放話筒 程序代碼程序代碼 或或 系統(tǒng)系統(tǒng) (mouse, error, keyboard命令分別產(chǎn)生鼠標(biāo)的相關(guān)事件、命令分別產(chǎn)生鼠標(biāo)的相關(guān)事件、ERROR事件、事件、keypress事件)事件) 3、注意事項、注意事項P1555.3.2 容器層次與類層次中的事件容器層次與類層次中的事件 一、容器層次的事件處理原則:一、容器層次的事件處理原則: 容器不處理與所包含的控件相關(guān)聯(lián)的事件容器不處理與所包含的控件相關(guān)聯(lián)的事件, 最里最里層的對象識別事件層的對象識別事件. 例外:例外: 選項按扭組、命令按扭組選項按扭組、命令按扭組作為容器,在

34、選項按扭、作為容器,在選項按扭、命令按扭中命令按扭中無事件處理程序時無事件處理程序時,識別子對象事件,識別子對象事件,參與對象的處理。參與對象的處理。 表單具有Click事件和DblClick事件 命令按鈕僅有Click事件處理代碼 例如例如:在圖所示的表單中有一個命令按鈕,表單設(shè)置了在圖所示的表單中有一個命令按鈕,表單設(shè)置了Click事件和事件和DblClick事件的處理代碼;命令按鈕僅設(shè)置了事件的處理代碼;命令按鈕僅設(shè)置了Click事件的處理代碼,那么當(dāng)用戶單擊命令按鈕時,不會事件的處理代碼,那么當(dāng)用戶單擊命令按鈕時,不會觸發(fā)表單的觸發(fā)表單的Click事件事件 對于表格控件來說,表格包含列控件,列控件又包含標(biāo)頭和文對于表格控件來說,表格包含列控件,列控件又包含標(biāo)頭和文本框控件。當(dāng)事件發(fā)生時,只有與事件相關(guān)聯(lián)的最里層對象識別本框控件。當(dāng)事件發(fā)生時,只有與事件相關(guān)聯(lián)的最里層對象識別該事件,更高層的容器不識別該事件,如圖所示該事件,更高層的容器不識別該事件,如圖所示 表單的MouseMove事件 表格的MouseMove事件 表格列標(biāo)頭的MouseMove事件 表格列控件的MouseMove事件 例外:例外:對于選項按鈕組與命令按鈕組來說,組中個別按鈕如對于選項按鈕組

溫馨提示

  • 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

提交評論