程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 類和對象

類和對象

編輯:Delphi

  Delphi在很大程度上采用了面向對象的開發思路,所以,在采用Delphi作為開發工具時,class和對象就顯得 尤為重要!

  對class的明確定義是:對具有相同特征的一類事物所做的歸納。作為一個非常抽象的概念,我們可以對類 這個字舉例來理解:在校的學生,雖然每個人都會有不同的情況,還有小學生、中學生、大學生之分,男、 女生之分,但是他們有一個共同點,都處於求學階段。我們就可以把他們歸納為“學生類”,而每一個學生 就是學生類的對象(有一點需要說明,在很多書中,有實體或者實例這種說法,這裡實體或者實例也就是提 到的對象)。

  而類的屬性指的是類的靜態特征,作為上面提到的“學生類”,我們說他具有性別、年齡、學號、班級、學 校名稱、各科考試成績等等特征,而這些,也就是學生類屬性。

  類的方法即類的動態特征,即屬於這一類的事物在接收到某種消息或命令時做出的反應,比如學生上課就是 學生類的一個方法,而這個方法的觸發就是上課鈴響這一個消息的產生。

  類的龐大作用還體現在它的無限繼承中。作為上面提到的學生類,我們以教育程度來分,不難看出,還可以 分出大學生類,中學生類,小學生類,而他們比學生類這個范圍更具體,學生類所具有的屬性他們每一個都 具有。也就是說,他們都是從學生類繼承而來,在學生類的基礎上更准確的進行了劃分。在這兒,學生類作 為父類,大學生類、中學生類、小學生類等作為子類出現。當然,在學生類以上,也有更抽象的類。比如, 人類是所以具有人類特征的歸納,學生類比人類更具體,在這個地方,人類作為父類,學生類作為子類。從 這兒可以看出,我們可以根據我們的需要,定義一個適合我們使用的類而不需要每一個屬性、方法都去寫出 來,只要簡單的繼承父類就可以了。(通常所說的派生即是父類對子類的說法:父類派生子類).

  VCL類庫

  delphi面向對象的基礎就是類,要真正了解和提高delphi的知識水平,我們有很大的必要弄清楚Delphi為我們 提供的vcl(類庫)。

  Delphi的層次結構如下:

  

  從圖中我們可以看出,Tobject是delphi系統中的所有類的祖先類,其他每一個類都是他的字類。 根據上面的 層次關系,我們可以看到Delphi中每一個類的繼承和派生,對我們使用自定義類是非常必要的。下面主要介 紹部分類:

  Tpersistent類:

  它由Tobject祖先類直接派生。需要指出的是,Tpersistent類成員都能夠進行流的操作(對數據以數據流的形 式傳遞)

  常用方法:

  Assign() 一個組件把另一個組件相關的值賦給自己;

  AssignTo() 與Assign()相反,在Tpersistent中申明為私有,派生類必須實現他的定義;

  Tcomponent類

  由Tpersistent類直接派生,它的對象的特性:在設計期間其屬性可以由Object inspector來控制,能夠擁有其 他組件。

  Tcomponent類可派生可視組件和非可視組件,如Tbutton和Tmenu

  Tcomponent類常用屬性:

  Owner:設置或讀取組件擁有者;

  CompenentCount:讀取或設置組件的擁有數目;

  ComponentIndex:讀取組件在其擁有者列表中的位置(從0開始);

  Components:他為一個數組,包含其擁有的組件列表(從0開始); Name:設置和讀取組件名稱;

  Tcomponent類常用方法

  Create:構造對象;

  Destroy:釋放對象;

  Getparentcomponent:取得父組件,沒有則返回nil;

  HASParent:判斷組件是否有父組件;

  InsertComponent:增加一個組件,由調用該方法的組件所擁有;

  RemoveComponent:刪除一個自己擁有的組件;

  Findcomponent(str:string):根據給出的組件名查找組件;

  Tcontrol類

  應用:一般用於可視組件

  它的屬性包括了本身的位置信息,尺寸信息,外觀屬性等,如:

  Top,Left,Width,Height,Visible,enable,text,caption等;

  它引入了標准事件如:

  Onclick,OnDblclick,OnmouseDown,OnmouseMove等

  需要說明的是,在Delphi 中,不能創建它的派生類,只能通過它已經存在的派生類TwinControl和 TgraphicControl派生;

  TwinControl類

  TwinControl類:標准窗口控件由它派生;

  它的對象有窗口句柄(指向對象的指針),能夠接受輸入焦點,能夠成為其他控件的父;

  在應用程序開發中,一般使用TwinControl的派生類;

  TwinControl類的常用屬性:

  Brush:用於繪制控件外形;

  Controls: 包含控件的所有子控件(值為一個數組);

  ControlCount:讀取子控件的數目;

  Handle:讀取TwinControl類對象的句柄;

  Showing:設置或讀取對象是否可見;

  Tabstop:設置用戶是否能夠用TAB鍵移動焦點;

  Taborder:設置對象在其父列表中的序號(從0開始);

  TgraphicControl類

  本類控件沒有窗口句柄,不能接收輸入焦點,同樣也不能是其他控件的父;

  TcostomControl類:

  它的派生類常作為自定義控件的基類
  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved