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

下載本文檔

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

文檔簡介

第七章面向?qū)ο蟪绦蛟O(shè)計第七章面向?qū)ο蟪绦蛟O(shè)計17.1類與對象的基本概念VFP不僅支持傳統(tǒng)的編程技術(shù),也支持面向?qū)ο蟮某绦蛟O(shè)計(Object-OrientedProgramming,簡稱OOP),并在程序語言方面作了強有力的擴充。傳統(tǒng)的編程技術(shù)在設(shè)計程序時,必須考慮程序代碼的全部流程,而面向?qū)ο蟮木幊碳夹g(shù)在設(shè)計程序時,考慮的是如何創(chuàng)建對象以及創(chuàng)建什么樣的對象,并利用對象來簡化程序設(shè)計。面向?qū)ο蟮某绦蛟O(shè)計是一種全新的程序設(shè)計方法,它引入了許多新的概念,提出了比傳統(tǒng)程序設(shè)計更高級的面向?qū)ο蟮木幊陶Z言,這些概念和語言使得開發(fā)應用程序更容易、效率更高。7.1類與對象的基本概念VFP不僅支持傳統(tǒng)的編程技術(shù),也支27.1.1對象對象是構(gòu)成程序的基本單位和運行實體,是由屬性及可施加在這些屬性上的操作(方法)所構(gòu)成的統(tǒng)一體。現(xiàn)實世界的事物均可抽象為對象。在VFP中,對象又可區(qū)分為控件和容器兩種。①控件是表單上顯示數(shù)據(jù)和執(zhí)行操作的基本對象。②容器是可以容納其它對象的對象,下表列出了VFP的容器及可能包含的對象。容器能包含的對象表單集表單,工具欄表單頁框,表格,任何控件頁框頁面頁面表格,任何控件表格表格列表格列標頭對象,除表單、表單集、工具欄、計時器和列對象以外的對象選項按鈕組選項按鈕命令按鈕組命令按鈕工具欄任何控件,頁框,容器Container容器任何控件7.1.1對象對象是構(gòu)成程序的基本單位和運行實體,是37.1.2類1.類的概念所謂類(Class)就是一組對象的屬性和行為特征的抽象描述,或者說類是具有共同屬性、共同操作性質(zhì)的對象的集合。類是已經(jīng)定義了的關(guān)于對象的特征、外觀和行為的模板。在表單控件工具欄中,每個控件按鈕都代表一個類,用其中某個按鈕在表單上創(chuàng)建的一個控件就是一個對象??梢钥闯觯孩兕愂菍ο蟮亩x。類規(guī)定并提供了對象具有的屬性、事件和方法程序。②對象通過類來產(chǎn)生。③對象是類的實例。④類是抽象的,對象是具體的7.1.2類1.類的概念42.基類(baseclass) 基類是VFP預先定義的類,在“新建類”對話框的“派生于”下拉列表中,包含了全部基類,從基類中可以派生出子類或創(chuàng)建對象。VFP6的基類,是VFP6系統(tǒng)定義的最基本的類。VFP系統(tǒng)為用戶提供了29個基類。 基類可作為用戶定義類的基礎(chǔ)。用戶可從基類來創(chuàng)建新類,并增添自己需要的功能?;愑挚煞譃槿萜黝?containerclasses)和控件類(controlclasse)。容器類可以容納其他對象,并允許訪問所包含的對象??丶惒荒苋菁{其他對象,它沒有容器類靈活。 由控件類創(chuàng)造的對象是不能單獨使用和修改的,它只能作為容器類中的一個元素,通過由容器類創(chuàng)造的對象修改或使用。2.基類(baseclass)53.子類(subcIass)) 通常把從已有的類派生出的新類稱為子類,已有的類稱為父類。例如從基類來創(chuàng)建新類時,基類是父類,新類是子類。新類不但具有父類的全部屬性和方法,而且允許對已有的屬性和方法進行修改。4、類庫(classlibrary)類庫可用來存儲以可視方式設(shè)計的類,其文件擴展名為.VCX。一個類庫通常可容納多個子類,這些子類允許由不同的基類派生。3.子類(subcIass))65、類的特性

⑴封裝性類的封裝性是指類的內(nèi)部信息對用戶是隱蔽的。在類的引用過程中,用戶只能看到封裝界面的信息,而類的內(nèi)部信息如內(nèi)部數(shù)據(jù)結(jié)構(gòu)、對象的方法程序和屬性代碼等則是隱蔽的,只有程序的開發(fā)者才了解類的內(nèi)部信息。例如對一個命令按鈕設(shè)置Caption屬性時,不必了解標題字符串是如何存儲的。封裝隱藏了不必要的復雜性,使得:①有利于對復雜對象的管理。由于隱藏了對象內(nèi)部細節(jié),使用戶能集中精力來使用對象的特性。②有利于程序的安全性。隱藏對象信息能防止代碼不慎受到破壞。⑵繼承性

繼承性包括以下內(nèi)容:①對象能自動繼承創(chuàng)建它的類的功能。②子類能自動繼承父類的功能。③對一個類的改動能自動反映到它的所有子類中。繼承性不只節(jié)省了用戶的時間和精力,同時也減少了維護代碼的難度。有了類的繼承,在編寫程序時,可以把具有普遍意義的類通過繼承引用到程序中,從而減少了代碼的編寫工作。5、類的特性77.2VisualFoxpro基類7.2.1VisualFoxPro基類基類容器類控件類創(chuàng)建容器類對象控件類對象創(chuàng)建7.2VisualFoxpro基類7.2.1Vis87.2.2生成基于類的對象

格式:<對象引用名>=CreateObject(<類名>,)說明:其中的類名可以是基類,也可以是用戶定義的子類。功能:生成以<類名>為名的類派生的對象,并可用對象引用名在此后引用該對象。【例7.2】從基類“Form”派生對象Form1,并顯示。Form1=CreateObject("Form")Form1.Show()7.2.2生成基于類的對象

格式:<對象引用名>=Cr9格式:<容器對象名>.AddObject(<控件對象名>,<控件類名>)說明:向容器對象中添加控件對象。按照默認設(shè)置,添加進去的對象是不可見的,即控件的Visibile屬性為.F.?!纠?.3】在例7.2中的表單中添加一個按鈕對象“Cmd1”。Form1.AddObject("Cmd1","CommandButton")Form1.Cmd1.Visible=.T.第七章--面向?qū)ο蟪绦蛟O(shè)計課件107.3VisualFoxPro中的對象7.3.1屬性、事件和方法1、屬性對象的屬性用來表示它的外觀,以命令按鈕為例,其位置、大小、顏色、以及該按鈕面上是顯示文字還是圖形等狀態(tài),都可用屬性來表示。設(shè)置對象的屬性要打開屬性窗口,打開屬性窗口可采用如下方法: ①選定該對象快捷菜單中的屬性命令。 ②選定顯示菜單的屬性命令。 屬性窗口中顯示了當前對象的屬性、事件和方法程序,并允許用戶更改屬性,定義事件代碼和修改方法程序。7.3VisualFoxPro中的對象7.3.1屬11

2、事件

事件(Event)泛指由用戶或系統(tǒng)觸發(fā)的一個特定的操作。例如若用鼠標單擊命令按鈕,將會觸發(fā)一個Click事件。一個對象可以有多個事件,但每個事件都是由系統(tǒng)預先規(guī)定的。一個事件對應于一個程序,稱為事件過程。

①事件驅(qū)動工作方式 事件一旦被觸發(fā),系統(tǒng)馬上就去執(zhí)行與該事件對應的過程。待事件過程執(zhí)行完畢后,系統(tǒng)又處于等待某事件發(fā)生的狀態(tài),這種程序執(zhí)行方式明顯地不同于面向過程的程序設(shè)計,稱為應用程序的事件驅(qū)動工作方式。 事件包括事件過程和事件觸發(fā)方式兩方面。事件過程的代碼應該事先編寫好。事件觸發(fā)方式可細分為3種:由用戶觸發(fā),例如單擊命令按鈕事件;由系統(tǒng)觸發(fā)如計時器事件,將自動按設(shè)定的時間間隔發(fā)生;由代碼引發(fā),例如用代碼來調(diào)用事件過程。

②打開代碼編輯窗口為事件(或方法程序)編寫代碼。

2、事件123、方法方法(Method)也稱為方法程序,它與一段程序代碼相對應,能使對象執(zhí)行一個功能操作。方法功能說明Refresh重新繪制一個表單或控件,并刷新它的所有值Release從內(nèi)存中釋放表單集或表單SetFocus使控件得到焦點Cls清除表單或屏幕對象(_Screen)中的圖形和文本Circle表單或屏幕對象(_Screen)中繪制圓或橢圓。該方法的參數(shù)為Circle(半徑,[圓心X坐標,圓心Y坐標[,縱橫比]])3、方法方法功能說明Refresh重新繪制一個13例1在表單上畫一個正圓和一個橢圓,單擊擦除將圓擦除,單擊取消,將表單從內(nèi)存中清除。例1在表單上畫一個正圓和一個橢圓,單擊擦除將圓擦除,單14例2制作“報時”程序。MessageBox():人機對話函數(shù)格式:MessageBox(<提示信息>,[<對話框類型>[,<對話框標題>]])函數(shù)功能:在屏幕上彈出一個指定格式的對話框。對話框類型由按鈕個數(shù)+對話框中顯示的圖標+默認按鈕三部分組合而成。例:IFMessageBox(“真的退出嗎?”,4+48+0,”確認”)=6例2制作“報時”程序。157.3.2對象屬性、方法的引用1.對象的包容層次當一個容器包含一個對象時,稱被包含的對象是容器的子對象,而容器稱為該對象的父對象。7.3.2對象屬性、方法的引用16

2、對象的引用①通常用以下引用關(guān)鍵字開頭THISFORMSET表示當前表單集THISFORM表示當前表單THIS表示當前對象

②引用格式:引用關(guān)鍵字后跟一個圓點,再寫出被引用對象或者對象的屬性,事件或方法程序。例如:THIS.Caption&&本對象(表單或控件)的Caption屬性THISFORM.Cls&&本表單的Cls方法程序③允許多級引用,但要逐級引用。 THISFORM.Commandl.Caption THIS.Commandl.Click

④控件也可引用包含它的容器

格式為:Control.Parent其中Control表示控件,Parent表示容器。例如THIS.Parent.Commandl.Caption,2、對象的引用173.編程設(shè)置對象的屬性值一個對象的屬性可以在設(shè)計時通過屬性窗口進行設(shè)置,也可以在編寫事件代碼中通過賦值語句進行設(shè)置。格式:<對象引用名>.<屬性>=<表達式>功能:將對象引用名所指向?qū)ο蟮膶傩栽O(shè)置為表達式的值。例:THIS.FontBold=.T.&&本對象文本以粗體顯示THIS.Parent.Caption=time()3.編程設(shè)置對象的屬性值184.調(diào)用對象的方法或觸發(fā)對象的事件程序調(diào)用格式:<對象>.<方法>[(參數(shù)表)]如:調(diào)用當前表單的Release方法關(guān)閉表單的語句為:ThisForm.Release4.調(diào)用對象的方法或觸發(fā)對象的事件程序19第七章面向?qū)ο蟪绦蛟O(shè)計第七章面向?qū)ο蟪绦蛟O(shè)計207.1類與對象的基本概念VFP不僅支持傳統(tǒng)的編程技術(shù),也支持面向?qū)ο蟮某绦蛟O(shè)計(Object-OrientedProgramming,簡稱OOP),并在程序語言方面作了強有力的擴充。傳統(tǒng)的編程技術(shù)在設(shè)計程序時,必須考慮程序代碼的全部流程,而面向?qū)ο蟮木幊碳夹g(shù)在設(shè)計程序時,考慮的是如何創(chuàng)建對象以及創(chuàng)建什么樣的對象,并利用對象來簡化程序設(shè)計。面向?qū)ο蟮某绦蛟O(shè)計是一種全新的程序設(shè)計方法,它引入了許多新的概念,提出了比傳統(tǒng)程序設(shè)計更高級的面向?qū)ο蟮木幊陶Z言,這些概念和語言使得開發(fā)應用程序更容易、效率更高。7.1類與對象的基本概念VFP不僅支持傳統(tǒng)的編程技術(shù),也支217.1.1對象對象是構(gòu)成程序的基本單位和運行實體,是由屬性及可施加在這些屬性上的操作(方法)所構(gòu)成的統(tǒng)一體?,F(xiàn)實世界的事物均可抽象為對象。在VFP中,對象又可區(qū)分為控件和容器兩種。①控件是表單上顯示數(shù)據(jù)和執(zhí)行操作的基本對象。②容器是可以容納其它對象的對象,下表列出了VFP的容器及可能包含的對象。容器能包含的對象表單集表單,工具欄表單頁框,表格,任何控件頁框頁面頁面表格,任何控件表格表格列表格列標頭對象,除表單、表單集、工具欄、計時器和列對象以外的對象選項按鈕組選項按鈕命令按鈕組命令按鈕工具欄任何控件,頁框,容器Container容器任何控件7.1.1對象對象是構(gòu)成程序的基本單位和運行實體,是227.1.2類1.類的概念所謂類(Class)就是一組對象的屬性和行為特征的抽象描述,或者說類是具有共同屬性、共同操作性質(zhì)的對象的集合。類是已經(jīng)定義了的關(guān)于對象的特征、外觀和行為的模板。在表單控件工具欄中,每個控件按鈕都代表一個類,用其中某個按鈕在表單上創(chuàng)建的一個控件就是一個對象??梢钥闯觯孩兕愂菍ο蟮亩x。類規(guī)定并提供了對象具有的屬性、事件和方法程序。②對象通過類來產(chǎn)生。③對象是類的實例。④類是抽象的,對象是具體的7.1.2類1.類的概念232.基類(baseclass) 基類是VFP預先定義的類,在“新建類”對話框的“派生于”下拉列表中,包含了全部基類,從基類中可以派生出子類或創(chuàng)建對象。VFP6的基類,是VFP6系統(tǒng)定義的最基本的類。VFP系統(tǒng)為用戶提供了29個基類。 基類可作為用戶定義類的基礎(chǔ)。用戶可從基類來創(chuàng)建新類,并增添自己需要的功能?;愑挚煞譃槿萜黝?containerclasses)和控件類(controlclasse)。容器類可以容納其他對象,并允許訪問所包含的對象??丶惒荒苋菁{其他對象,它沒有容器類靈活。 由控件類創(chuàng)造的對象是不能單獨使用和修改的,它只能作為容器類中的一個元素,通過由容器類創(chuàng)造的對象修改或使用。2.基類(baseclass)243.子類(subcIass)) 通常把從已有的類派生出的新類稱為子類,已有的類稱為父類。例如從基類來創(chuàng)建新類時,基類是父類,新類是子類。新類不但具有父類的全部屬性和方法,而且允許對已有的屬性和方法進行修改。4、類庫(classlibrary)類庫可用來存儲以可視方式設(shè)計的類,其文件擴展名為.VCX。一個類庫通??扇菁{多個子類,這些子類允許由不同的基類派生。3.子類(subcIass))255、類的特性

⑴封裝性類的封裝性是指類的內(nèi)部信息對用戶是隱蔽的。在類的引用過程中,用戶只能看到封裝界面的信息,而類的內(nèi)部信息如內(nèi)部數(shù)據(jù)結(jié)構(gòu)、對象的方法程序和屬性代碼等則是隱蔽的,只有程序的開發(fā)者才了解類的內(nèi)部信息。例如對一個命令按鈕設(shè)置Caption屬性時,不必了解標題字符串是如何存儲的。封裝隱藏了不必要的復雜性,使得:①有利于對復雜對象的管理。由于隱藏了對象內(nèi)部細節(jié),使用戶能集中精力來使用對象的特性。②有利于程序的安全性。隱藏對象信息能防止代碼不慎受到破壞。⑵繼承性

繼承性包括以下內(nèi)容:①對象能自動繼承創(chuàng)建它的類的功能。②子類能自動繼承父類的功能。③對一個類的改動能自動反映到它的所有子類中。繼承性不只節(jié)省了用戶的時間和精力,同時也減少了維護代碼的難度。有了類的繼承,在編寫程序時,可以把具有普遍意義的類通過繼承引用到程序中,從而減少了代碼的編寫工作。5、類的特性267.2VisualFoxpro基類7.2.1VisualFoxPro基類基類容器類控件類創(chuàng)建容器類對象控件類對象創(chuàng)建7.2VisualFoxpro基類7.2.1Vis277.2.2生成基于類的對象

格式:<對象引用名>=CreateObject(<類名>,)說明:其中的類名可以是基類,也可以是用戶定義的子類。功能:生成以<類名>為名的類派生的對象,并可用對象引用名在此后引用該對象?!纠?.2】從基類“Form”派生對象Form1,并顯示。Form1=CreateObject("Form")Form1.Show()7.2.2生成基于類的對象

格式:<對象引用名>=Cr28格式:<容器對象名>.AddObject(<控件對象名>,<控件類名>)說明:向容器對象中添加控件對象。按照默認設(shè)置,添加進去的對象是不可見的,即控件的Visibile屬性為.F.。【例7.3】在例7.2中的表單中添加一個按鈕對象“Cmd1”。Form1.AddObject("Cmd1","CommandButton")Form1.Cmd1.Visible=.T.第七章--面向?qū)ο蟪绦蛟O(shè)計課件297.3VisualFoxPro中的對象7.3.1屬性、事件和方法1、屬性對象的屬性用來表示它的外觀,以命令按鈕為例,其位置、大小、顏色、以及該按鈕面上是顯示文字還是圖形等狀態(tài),都可用屬性來表示。設(shè)置對象的屬性要打開屬性窗口,打開屬性窗口可采用如下方法: ①選定該對象快捷菜單中的屬性命令。 ②選定顯示菜單的屬性命令。 屬性窗口中顯示了當前對象的屬性、事件和方法程序,并允許用戶更改屬性,定義事件代碼和修改方法程序。7.3VisualFoxPro中的對象7.3.1屬30

2、事件

事件(Event)泛指由用戶或系統(tǒng)觸發(fā)的一個特定的操作。例如若用鼠標單擊命令按鈕,將會觸發(fā)一個Click事件。一個對象可以有多個事件,但每個事件都是由系統(tǒng)預先規(guī)定的。一個事件對應于一個程序,稱為事件過程。

①事件驅(qū)動工作方式 事件一旦被觸發(fā),系統(tǒng)馬上就去執(zhí)行與該事件對應的過程。待事件過程執(zhí)行完畢后,系統(tǒng)又處于等待某事件發(fā)生的狀態(tài),這種程序執(zhí)行方式明顯地不同于面向過程的程序設(shè)計,稱為應用程序的事件驅(qū)動工作方式。 事件包括事件過程和事件觸發(fā)方式兩方面。事件過程的代碼應該事先編寫好。事件觸發(fā)方式可細分為3種:由用戶觸發(fā),例如單擊命令按鈕事件;由系統(tǒng)觸發(fā)如計時器事件,將自動按設(shè)定的時間間隔發(fā)生;由代碼引發(fā),例如用代碼來調(diào)用事件過程。

②打開代碼編輯窗口為事件(或方法程序)編寫代碼。

2、事件313、方法方法(Method)也稱為方法程序,它與一段程序代碼相對應,能使對象執(zhí)行一個功能操作。方法功能說明Refresh重新繪制一個表單或控件,并刷新它的所有值Release從內(nèi)存中釋放表單集或表單SetFocus使控件得到焦點Cls清除表單或屏幕對象(_Screen)中的圖形和文本Circle表單或屏幕對象(_Screen)中繪制圓或橢圓。該方法的參數(shù)為Circle(半徑,[圓心X坐標,圓心Y坐標[,縱橫比]])3、方法方法功能說明Refresh重新繪制一個32例1在表單上畫一個正圓和一個橢圓,單擊擦除將圓擦除,單擊取消,將表單從內(nèi)存中清除。例1在表單上畫一個正圓和一個橢圓,單擊擦除將圓擦除,單33例2制作“報時”程序。MessageBox():人機對話函數(shù)格式:MessageBox(<提示信息>,[<對話框類型>[,<對話框標題>]])函數(shù)功能:在屏幕上彈出一個指定格式的對話框。對話框類型由按鈕個數(shù)+對話框中顯示的圖標+默認按鈕三部分組合而成。例:IFMessageBox(“

溫馨提示

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

評論

0/150

提交評論