首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
2.2 用Delphi的對象進行編程
Delphi是基于面向對象編程的先進開發環境。面向對象的程序設計(OOP)是結構化語言的自然延伸。OOP的先進編程方法,會產生一個清晰而又容易擴展及維護的程序。一旦您為您的程序建立了一個對象,您和其他的程序員可以在其他的程序中使用這個對象,完全不必重新編制繁復的代碼。對象的重復使用可以大大地節省開發時間,切實地提高您和其他人的工作效率。
2.2.1 什么是對象
一個對象是一個數據類型。對象就象記錄一樣,是一種數據結構。按最簡單的理解,我們可以將對象理解成一個記錄。但實際上,對象是一種定義不確切的術語,它常用來定義抽象的事務,是構成應用程序的項目,其內涵遠比記錄要豐富。在本書中,對象可被理解為可視化部件如按鈕、標簽、表等。
了解對象,最關鍵的是掌握對象的特性。一個對象,其最突出的特征有三個:封裝性、繼承性、多態性。
2.2.1.1 對象的封裝性
對對象最基本的理解是把數據和代碼組合在同一個結構中,這就是對象的封裝特性。將對象的數據域封閉在對象的內部,使得外部程序必需而且只能使用正確的方法才能對要讀寫的數據域進行訪問。封裝性意味著數據和代碼一起出現在同一結構中,如果需要的話,可以在數據周圍砌上“圍墻”,只有用對象類的方法才能在“圍墻”上打開缺口。
2.2.1.2 對象的繼承性
繼承性的含義直接而且顯然。它是指把一個新的對象定義成為已存在對象的后代;新對象繼承了舊類的一切東西。在往新對象中添加任何新內容以前,父類的每一個字段和方法都已存在于子類中,父類是創建子類的基石。
2.2.1.3 對象的多態性
多態性是在對象體系中把設想和實現分開的手段。如果說繼承性是系統的布局手段,多態性就是其功能實現的方法。多態性意味著某種概括的動作可以由特定的方式來實現,這取決于執行該動作的對象。多態性允許以類似的方式處理類體系中類似的對象。根據特定的任務,一個應用程序被分解成許多對象,多態性把高級設計處理的設想如新對象的創建、對象在屏幕上的重顯、程序運行的其它抽象描述等,留給知道該如何完美的處理它們的對象去實現。
2.2.1.4 通過Delphi實例了解對象
讓我們結合Delphi的實例討論對象的概念:
當您要建立一個新工程時,Delphi 將顯示一個窗體作為設計的基礎。在程序編輯器中,Delphi將這個窗體說明為一個新的對象類型,并同時在與窗體相關聯的庫單元中生成了創建這個新窗體對象的程序代碼。
unit Unit1;
interface
uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm) {窗體的類型說明開始}
private
{ Private declarations }
public
{ Public declarations }
end; {窗體的類型說明結束}
var
Form1: TForm1; {說明一個窗體變量}
implementation
{$R *.DFM}
end.
新的窗體類型是TForm1,它是從TForm繼承下來的一個對象。它具有對象的特征:含有域或方法。由于您未給窗體加入任何部件,所以它只有從TForm類中繼承的域和方法,在窗體對象的類型說明中,您是看不到任何域、方法的說明的。Form1稱為TForm1類型的實例(instance)。您可以說明多個對象類型的實例,例如在多文檔界面(MDI)中管理多個子窗口時就要進行這樣的說明。每一個實例都有自己的說明,但所有的實例卻共用相同的代碼。
假設您向窗體中加入了一個按鈕部件,并對這個按鈕建立了一個OnClick事件處理過程。再查看Unit1的源程序,會發現TForm1的類型說明部分如下:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
現在TForm1對象有了一個名為Button1的域:它是您在窗體中加入的按鈕。TButton是一個對象類型,Button1是Tbutton的一個實例。它被TForm1對象所包含,作為它的數據域。每當您在窗體中加入一個部件時,部件的名稱就會作為TFom1的域加入到類型說明中來。在Delphi中,您所編寫的事件處理過程都是窗體對象的方法。每當您建立一個事件處理過程,就會在窗體的對象類型中說明一個方法。
當您使用Object Inspector來改變對象(部件)的名稱時,這個名稱的改變會反映到程序中。例如,在Object Inspector中將Form1的Name屬性命名為ColorBox,您會發現在類型說明部分,會將前文的TForm1改為:
TColorBox=class(TForm);
并且在變量說明部分,會說明ColorBox為TColorBox類型的變量,由Delphi自動產生的事件處理過程名稱會自動改為TColorBox.Button1Click;但您自行編寫的實現部分的代碼卻不會被自動修改。因此,如果您在改變Name屬性前編寫了程序,則您必須將事件處理過程中的對象名稱進行改變。所以,原先的Form1.Color要改為ColorBox.Color。
相關推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |