標籤:delphi開發
Delphi的基本特性:語言,執行階段程式庫(RTL),核心類庫
語言特性:
Delphi 即是一門語言同時又是一個開發工具。它是經典Pascal語言的物件導向的擴充。
內容提要
*類與對象
Delphi中每個可視放置在表單中的組件是類的類型對象,該類可在系統庫中獲得。類和對象之間的關係和變數和類型之間的關係相同。
*封裝:provate public
“黑盒子”,不需要知道裡面有什麼,只需要知道怎麼樣和黑盒子介面。
基本的3個訪問標示符private、protected、public。它只限制於單元外面的代碼訪問單元介面部分中聲明的一些確定的類成員。
*屬性
我們可以通過屬性來封裝資料,屬性可以看做是虛擬欄位。
*構造器
為了給對象分配記憶體調用用Create對象方法。Create構造器會初始化資料。我們可以自己定製Create構造器來啟動特殊的執行個體資料。
分配記憶體--我們不要的時候必須來釋放掉,調用析構器。
*對象與記憶體
Delphi 以對象引用為基礎,建立該類執行個體。每一個變數不會儲存對象的值,而是儲存一個指標,來說明對象的記憶體位置。對象執行個體必須人工建立。總之一句話:同類型兩個對象賦值,賦值的是對象所在記憶體的地址。不同類型賦值要轉換類型。用(as或者 類型名(xxx))
記憶體管理規則:
每個對象在使用前必須建立。
每個對象在使用後必須解除。
每個對象只能解除一次。
*繼承
如果我們定義一個類,想要在現有類中添加新的方法。就要開啟“黑盒子”在裡面做改動,這不是個好辦法。這時可以用到繼承關係。父類有的東西子類繼承了,子類重新增加的方法,正是我們想要的。不斷健壯子類,優生優育原則(衍生類別一定要比父類強大健壯)來實現代碼擴充和代碼重用。
*繼承與類型相容
不能將一個整型賦值給一個布爾,當然了除非我們顯示的類型強轉。
相容規則是:只要他們類型相同或相容
相容:如 父類 TA 派生子類 TB ,子類TB的對象b賦值給父類TA的對象 A子類溶於父類。但是如果父類要用子類的方法還必須把父類類型轉化成子類類型。
*虛方法與多態
多態條件:
從父類繼承、子類父類方法一樣父類是虛方法或動態方法,或純虛方法、子類方法加override
只有在程式運行時候才能確定對象方法的實際地址叫晚綁定。
使用者調用對象的方法將其做用於一個通用變數,根據對象的類在運行時才決定實際調用對象的方法就是多態。其實多態就是實作類別上面的類型相容。
多態是通過虛方法來實現的。
如果是多態那麼一定是晚綁定。
*介面
一個類中有抽象方法它就是抽象類別。一個純虛方法沒有方法實現,它就相當於一個借口,子類來實現它想要的功能。
介面類似類,但不是類,他已經變性手術了。
一個類可以繼承自一個基類,但他可以實現多個介面。
因為說有類都派生於TObjcet,所有介面都派生於IInterface,故形成一個總的獨立層。
*異常
Try 定義保護代碼起始
Except 定義代碼保護結尾,引用異常處理句子
Finally 總要執行的操作,一般為:關閉檔案或資料庫表格,釋放對象和其他資源
*類引用
代碼是在類本身上處理的,類引用不是一個對象,它只是對類的類型的引用。
Type
TA = class of TB;
…
Var
B : TB;
A : TA;
Begin
B :=TB.create;
A:=TA;