6.1 面向對象程序設計概述
1. 基本概念
面向對象的程序設計是通過對類、子類和對象等的設計來體現的,類是面向對象程序設計技術的核心。
類:定義了對象特征以及對象外觀和行為的模板。
類的特征:
封裝性:隱藏了類中對象的內部數據或操作細節,只看到外表信息。
繼承性:
任何類都可以從其它已有的類中派生,新類保持了父類中的行為和屬性,但增加了新的功能。體現了面向對象設計方法的共享機制。
多態性:相同的操作可作用于多種類型的對象上,并獲得不同的結果。
抽象性:提取一個類或對象與眾不同的特征,而不對該類或對象的所有信息進行處理。
基類:
系統本身提供的類稱為基類;惏ㄈ萜黝惡涂丶。容器類是其他對象的集合,如表格、選項按鈕組;控件類是單一的對象,不包含其他對象,如命令按鈕、文本框。
子類:
以其他類定義為起點,對某一對象所建立的新類。新類將繼承任何對父類所做的修改。
類庫:
存儲類的文件,每一個以可視方式設計的類都存儲在一個類庫中。類庫文件的擴展名為 .VCX 。
對象:是類的一個實例,包括了數據和過程。具有所在類所定義的全部屬性和方法。
VFP有兩種對象:容器對象和控件對象。
屬性:控件、字段或數據庫對象的特性。
事件:由對象識別的一個動作。
方法:與對象相聯系的由程序執行的一個處理過程,即處理事件的一組代碼。
用戶不可以為對象創建新的事件,但可以創建新的方法程序。
2. Visual FoxPro 基類
容器命令組控件微調標簽表單命令按鈕復選框OLE 容器控制線條表單集選項組列表框OLE 綁定型控制分隔符 #表格選項按鈕 #文本框自定義形狀標頭 #頁框組合框工具欄圖象列 #頁面 #編輯框計時器從下述 Visual FoxPro 基類中,可以派生子類或創建對象。
注:# 這些類是父容器的集成部分,在類設計器中不能子類化。
基類事件的最小集合
事件
說明
Init當對象創建時激活。Destroy當對象從內存中釋放時激活。Error當類中的事件或方法過程中發生錯誤時激活。
基類屬性的最小集合
屬性
說明
Class該類屬于何種類型。BaseClass該類由何種基類派生而來,例如 Form、Commandbutton 或 Custom 等ClassLibrary該類從屬于哪種類庫。ParentClass對象所基于的類。若該類直接由 Visual FoxPro 基類派生而來,則 ParentClass 屬性值與 BaseClass 屬性值相同。
容器類
容器類可以包含其他對象,并且允許訪問這些對象。每種容器類所能包含的對象如下。
容器
能包含的對象
命令按鈕組命令按鈕容器任意控件控件任意控件表單集表單、工具欄表單頁框、任意控件、容器或自定義對象表格列標頭對象以及除表單、表單集、工具欄、計時器和其他列對象以外的任意對象表格表格列選項按鈕組選項按鈕頁框頁面頁面任意控件、容器和自定義對象工具欄任意控件、頁框和容器
[1] [2] [3] [4] 下一頁
6.2 類的創建
1. 創建類的方法
(1)類設計器
(2)表單設計器
(3)編程方式
2. 用類設計器創建類
使用“類設計器”能夠可視化地創建并修改類。 類存儲在類庫 (.VCX) 文件中。
(1) 創建新類
可以用三種方法(文件菜單、項目管理器、CREATE CLASS命令)打開類設計器并在其中創建新類,且在設計時就能看到每個對象的最終外觀。
步驟:
單擊文件菜單中的新建 → 選擇類,新文件 → 在對話框中給出新類的名稱、新類基于的類以及保存新類的類庫 → 進入類設計器 <→ 根據需要在基類的基礎上進行所需修改 → 關閉設計器并確定保存。
(2) 為類指定設計時的外觀
1) 為類設置一個工具欄圖標
在類設計器中從類菜單中選擇類信息 → 打開類信息對話框,在工具欄圖標框中鍵入 .BMP 文件的名稱和路徑。
附注:
工具欄圖標的 .BMP 文件必須是 15 x 16 象素點大小。如果圖片過大或過小,它將被調整到 15 x 16 象素點,圖形可能變形。
2) 為類設置一個容器圖標
打開類設計器從類菜單選擇類信息 → 在容器圖標框中鍵入將在表單設計器中的控件工具欄按鈕上顯示的 .BMP 文件名稱和路徑。
(3) 創建類庫
可以用三種方法創建類庫。
1) 在創建類時,在新類對話框的“存儲于”框中指定一個新的類庫文件。
2) 使用 CREATE CLASS 命令,同時指定新建類庫的名稱。
例如,下面的語句創建了一個名為 myclass 的新類和一個名為 new_lib 的新類庫:
CREATE CLASS myclass OF new_lib AS CUSTOM
3) 使用 CREATE CLASSLIB 命令。
例如,在命令窗口鍵入下面的命令,可以創建一個名為 new_lib 的類:
CREATE CLASSLIB new_lib
(5) 修改類定義
在創建類之后,還可以修改它,對類的修改將影響所有的