版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
VisualFoxPro程序設計教程1VisualFoxPro4.2面向對象程序設計和可視化設計工具使用2VisualFoxPro本節(jié)要求1.目的、要求
(1)掌握面向對象程序設計的基本概念:類、對象、事件、方法、屬性(2)了解面向對象程序設計思想(3)了解面向對象程序設計的設計方法2.重點、難點重點:面向對象程序設計基本概念的理解。難點:面向對象程序設計的設計方法???/p>
學
時:理論(2學時)3VisualFoxPro面向對象程序設計:將數(shù)據(jù)及對數(shù)據(jù)的操作放在一起,作為一個相互依存,不可分割的整體來處理,它將對象及對對象的操作抽象成對象屬性和對象方法,這些對象的屬性就是要處理的數(shù)據(jù),而對象的方法就是對這些數(shù)據(jù)進行操作,面向對象程序設計就是通過對對象屬性方法的設置,達到對對象操作的目的?;靖拍睿簩ο?、類、子類、繼承、屬性、方法、事件等。面向對象程序設計:ObjectOrientedProgramming簡稱為OOP(1)對象(Object)對象(Object):是組成程序的構件。作為程序構件的“對象”是對現(xiàn)實世界中一個實體的一種模擬工具。例如:一個人,一個命令按鈕等都是對象。5VisualFoxPro對象是反映客觀事物屬性及行為特征的描述。每個對象都具有描述它的特征的屬性,及附屬于它的行為。一個人有姓名、性別、出生年月,命令按鈕有高度、寬度、顏色等。每個對象有自己的行為:如人可以站立、行走,命令按鈕可以單擊、雙擊等。(2)屬性(ATTRIBUTE)屬性:是對象的一組特征數(shù)據(jù)。①每個對象都有多個屬性來描述,不同的對象可以有相同的屬性,但必須有不同的屬性值來區(qū)分他們。例如:一個人有姓名、年齡、身高、體重等屬性,對象張三和對象李四具有相同的屬性,但他們有不同的屬性值,至少一個姓名屬性值為“張三”,另一個為“李四”。6VisualFoxPro②在VisualFoxPro中,一個對象的屬性就是該對象的一項數(shù)據(jù)特性。例如:一個標簽對象Label1,有字體(FontSize)、標題(Caption)、字體大?。‵ontSize)等屬性,同樣,不同的標簽對象間,必定有不同的屬性值來區(qū)分它們。(3)事件(Event)與方法(Means)①事件:事件是對象可能作出的行為或動作,屬于對象的靜態(tài)特征。它是預先定義好的動作,通過用戶的操作或系統(tǒng)來引發(fā),事件是通過用戶的交互操作產(chǎn)生的。在VFP統(tǒng)中,對象可以響應50多種事件。例如:一個人的坐、立、走都是人可以作出的動作。如命令按鈕的事件,系統(tǒng)規(guī)定了包括了單擊(click)、右鍵單擊(rightclick)等。7VisualFoxPro正常情況下,激活一個事件,將執(zhí)行相應的方法。如果這個事件沒有事先定義,則不可能發(fā)生這個事件;如果定義了事件,而事件的方法沒有事先設置,則對對象發(fā)生事件時不會有任何反映。方法靠事件進行引發(fā),所以二者是相互依賴,相輔相成的。例如:乘客登上飛機,觸發(fā)了一個“登機”的事件;飛機在飛行,是飛機這個對象,在執(zhí)行“飛行”這個方法,飛機具有飛行的能力。所以“登機”是一個事件,而“飛行”則是方法。*事件與方法緊密聯(lián)系9VisualFoxPro①類的定義“類”:是具有相同屬性特征和行為規(guī)則的多個“對象”的一種統(tǒng)一描述。類就是對一類相似對象的屬性和行為特征的抽象描述?;蛘哒f,類是具有共同屬性、共同操作性質的對象的集合。在VFP系統(tǒng)中,類就像是一個模板,對象都是由類生成的,類定義了對象所有的屬性、事件和方法,從而決定了對象的屬性和它的行為。VFP系統(tǒng)為用戶提供29個基類。對于一個學校的全體學生,描述其特征的數(shù)據(jù)模式是相同的。行為規(guī)則有不同的地方,也有相同的地方。但如果將行為的選擇加以一些限制,將引起學生反映的外部事件歸納為:(4)類(Class)10VisualFoxPro*
當一個學年度不及格科目超過學校規(guī)定時,這一部分學生應該留級或受到警示。*
完成規(guī)定科目的學習并考試合格者,學生的整體反映是畢業(yè)離校。一般管理信息系統(tǒng)中,系統(tǒng)的使用者和設計者所關心的問題正是這樣一些共性問題而并非一些很個體的問題,設計者對個體的行為進行分析、歸納、抽象,形成整個群體的共同行為規(guī)范,并把這種共同的行為規(guī)范用程序設計語言描述成程序過程,和描述該群體的特征數(shù)據(jù)模式一起進行封裝,這樣就完成了OOP方法中一個“類”的設計。*一個新學年度到來時,學生的整體反映應該是繳費報到。11VisualFoxPro*封裝性:是指類的內部信息對用戶是隱蔽的。由于類具有封裝性,因此不必被類的概念或類的抽象所困擾。在使用類時,用戶不需熟悉對象內部的復雜性,只需掌握類的使用方法。例如:使用照相機照相時,無需了解照相機是怎樣設計的和內部構造,只要會使用即可。類的封裝性使應用程序的可用性大大提高了。*抽象性:允許用戶忽略實施細節(jié),從更高的等級上考慮一個實體。繼承性:指通過繼承關系利用已有的類構造新類。任何一個基類都有它的屬性。即使用戶沒有定義,VFP系統(tǒng)也賦給基類相應的缺省值。*繼承性(Inheritance)13VisualFoxPro●對象能自動繼承創(chuàng)建它的類的功能。●
子類能自動繼承父類的功能?!?/p>
對一個類的改動能反映到它的所有子類中。2.VFP面向對象思想的實現(xiàn)方法VFP提供的設計器表單設計器菜單設計器報表設計器(1)VFP基類在VFP中,為了實現(xiàn)面向對象的程序設計或創(chuàng)建應用程序,系統(tǒng)提供了可以使用的基本類,即VFP基類。這個基類是系統(tǒng)本身內含的,不存于某個類庫中。用戶可以基于基類生成所需的對象,也可以創(chuàng)建自己的類。217頁表4.7給出了VFP基類列表。14VisualFoxProVFP中的基類容器類控件類每一個基類對應表單控件工具欄上的一個圖形按鈕:每一個VFP基類都有自己的一套屬性、方法和事件。①容器類容器類可以包含其他對象,并且允許訪問這些對象。例如:若創(chuàng)建一個含有兩個命令按鈕的容器類,而后將該類的一個對象加入表單中,那么無論在設計時刻還是在運行時刻,都可以對該容器中任何一個對象進行單獨操作。15VisualFoxProVFP中的對象容器對象控件對象(2)VFP對象VFP的對象由基類生成,VFP給出的各種控件工具欄提供了可以生成對象的按鈕,當選擇一個按鈕在表單上單擊或拖動畫出一個控件時,即生成了一個對象。①容器與控件控件:是一個以圖表化方式顯示出來并能與用戶進行交互的對象。控件通常被放置于一個容器里。他不能包含其他對象。最典型的控件就是命令按鈕、文本。文本自身是一個對象,在文本中不可放其它對象。容器:是一種特殊控件,是可以包含其它對象的對象。書218頁表4.9列出了VFP中常用的容器及其所能包容的對象。17VisualFoxPro表單容器對象及所包容的對象情況命令按鈕標簽組合框文本框列表框表單控件工具欄頁框容器對象控件對象18VisualFoxPro②對象的引用在面向程序設計中,首先要明確下面幾個問題:容器中的對象仍然可以是一個容器,一般把一個“對象”的直接容器稱為“父容器”,在調用特定的對象時,搞清該對象的“父容器”是至關重要的,不能把一個對象的間接容器錯誤地視為其“父容器”。*容器中對象的層次*對象使用局域名每個對象都有一個名字。在給對象命名時,只要保證同一個“父容器”下的各對象不重名即可,換句話說,對象使用的是局域名,因此不能單獨使用對象名來調用對象,19VisualFoxPro<表單集>.<表單名>.<容器名1>.<容器名2><對象名>以上格式所表示的是<對象名>中的對象,不是前面的部分,其間用小數(shù)點分隔。如果某個對象直接放在表單上,則引用時不應再寫容器名。*對象引用方式*對象引用中的關鍵字及含義(見書220頁表4-10)This:表示當前對象Parent:表示當前對象的直接“父容器”ThisForm:表示包含當前對象的表單ThisFormSet:表示包含當前對象的表單所屬的表單集例如在圖4-25中:命令按鈕1的引用:mand1Text1引用:thisfrom.pagefrane1.page1.text121VisualFoxPro①屬性窗口打開屬性窗口的方法:(3)VFP對象的屬性*顯示菜單/屬性*右擊表單空白處,快捷菜單/屬性對象組合框選項卡屬性設置框屬性列表框屬性說明信息屬性窗口各部分功能:對象組合框——下拉列表中顯示當前表單、表單集及全部控件對象的列表。選擇任意對象,將在屬性列表框中列出有關這個對象的所有屬性、事件和方法程序供選擇設置。選項卡——包含5個選項卡,分別用來顯示對象的屬性、事件、方法程序等,各選項按字母順序排列。22VisualFoxPro【全部】:列出對象的所有屬性、事件、方法程序【數(shù)據(jù)】:列出所有顯示或操縱的數(shù)據(jù)屬性【方法程序】:對象的方法程序與事件,帶有EVENT的是事件,其余為方法程序?!静季帧浚簩ο蟮奈恢?、大小、顏色、字體等屬性。【其它】:類信息和用戶自定義屬性等。注意:不同的對象,有不同的屬性值。屬性設置框——用于更改屬性值的文本框或組合框,左邊的三個按鈕“×”、“√”、“fx”可以取消和設置以及調用函數(shù)。屬性列表——給出在對象組合框選定的對象按選定選項卡分類后的各種屬性,包括屬性名和當前屬性值。如果選中某個屬性,其值會在屬性設置框中出現(xiàn),以供修改。23VisualFoxPro(1)Caption屬性——標題屬性指定對象標題中顯示的文本。(2)Name屬性指定在代碼中引用對象時所用的名稱。(3)AutoSize屬性——控件是否根據(jù)正文自動調整大小.T.——真:自動調整大小.F.——假(默認):保持原來設計時大小。正文太長,則自動裁剪掉。(4)Heigh屬性——指定對象在屏幕上的高度(5)Top屬性控件:指定相對父對象最頂端的所在的位置表單對象:確定表單頂部邊緣與VFP主窗口間距離VFP中的常用屬性25VisualFoxPro控件:相對父對象的左邊界距離表單:表單左邊界與VFP主窗口左邊界的距離(8)Enabled屬性——指定控件是否可用.T.——真:可用.F.——假:不可用,呈暗淡色,禁止用戶操作(9)Visible屬性——指定控件是否可見.T.——真:可見.F.——假:不可見,但控件本身存在(10)FontName屬性——指定對象顯示文本的字體名(11)FontSize屬性——指定對象文本字體大小(7)Left屬性26VisualFoxPro(20)Picture屬性——指定控件中顯示的位圖、圖標文件或通用字段。(21)TabIndes屬性——指定頁面上控件的【Tab】健的次序。(22)TabStop屬性——用戶是否可以使用【Tab】健把焦點移到對象上。(23)SpecialEffect屬性——形狀控件的不同樣式選項(24)Value屬性——指定控件的當前取值。(19)Style屬性——指定控件的樣式29VisualFoxPro(4)VFP事件①事件驅動方式面向對象程序設計的特點就是所有的操作都靠事件驅動,這些事件都是由系統(tǒng)預先定義,由系統(tǒng)或用戶觸發(fā),一旦觸發(fā)某個事件,系統(tǒng)就會轉去執(zhí)行與該事件對應的方法程序代碼,完成某種操作。事件處理完畢后,系統(tǒng)繼續(xù)待下一個事件的發(fā)生。②常見事件介紹——見書223頁表4-13有時需要給對象添加新的屬性,方法是,在菜單欄中,選擇“表單”菜單中“新建屬性”選項,在對話框中,指定要添加的屬性名稱,并單擊“添加”按鈕,就完成的新屬性的添加工作,往后就可以如前面說明的一樣設置該屬性了。②創(chuàng)建新屬性30VisualFoxPro事件:預先設定好的特定動作。由用戶系統(tǒng)來激活。但用戶不能創(chuàng)建新事件。例1:表單中的按鈕對象對于鼠標Click(單擊)事件的響應。(例11-6)
表單設計,在表單中加入一個標簽、一個按鈕。(2)編寫程序代碼——進入代碼窗口的三種方法雙擊對象顯示/代碼右擊對象——快捷菜單/代碼
command1的Click事件代碼:
ThisForm.Label1.Caption="我單擊了一下按鈕!"(4)運行表單31VisualFoxPro格式:<對象引用>.<方法程序>(5)VFP方法程序例2:調用對象方法示例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DevOps實踐與流程優(yōu)化
- 云計算技術實踐指南探討
- 教師職稱評審與職務晉升制度
- 2025-2026年秋季第一學期學校英語教研組工作總結:征途漫漫從頭越奮楫逐浪向未來
- fpga課程設計卷積交織器
- vb課程設計心得
- 2026年臨沂莒南縣部分事業(yè)單位公開招聘綜合類崗位工作人員29人考試備考題庫及答案解析
- 2026北京市海淀區(qū)中國人民大學哲學院招聘1人筆試備考試題及答案解析
- 2026年上半年玉溪師范學院招聘人員(6人)筆試參考題庫及答案解析
- 2026山東事業(yè)單位統(tǒng)考濱州市沾化區(qū)招聘64人筆試參考題庫及答案解析
- 消化內鏡ERCP技術改良
- 云南師大附中2026屆高三1月高考適應性月考卷英語(六)含答案
- 2026湖北隨州農(nóng)商銀行科技研發(fā)中心第二批人員招聘9人筆試備考試題及答案解析
- 騎行美食活動方案策劃(3篇)
- 2026年上海市松江區(qū)初三語文一模試卷(暫無答案)
- 石化企業(yè)環(huán)保培訓課件
- 2026年呂梁職業(yè)技術學院單招職業(yè)技能考試備考試題帶答案解析
- 清華大學教師教學檔案袋制度
- 2025年新疆師范大學輔導員招聘考試真題及答案
- 人教版九年級物理上學期期末復習(知識速記+考點突破+考點練習題)含答案
- 電梯更新改造方案
評論
0/150
提交評論