標籤:
一、物件導向介紹
OOP是使用獨立的對象(包含資料和代碼)作為應用程式模組的範例。雖然OOP不能使得代碼容易編寫,但是它能夠使得代碼易於維護。將資料和代碼結合在一起,能夠使定位和修複錯誤的工作簡單化,並最大限度地減少對其他對象的影響,提高代碼的效能。一般OOP都支援一下三個概念:
1)封裝:把相關的資料和代碼結合在一起,並隱藏了實現細節。封裝的好處是有利於程式的模組化,並把代碼和其他代碼分開
2)繼承:是指一個新的對象能夠從父物件中擷取屬性和方法,這種概念能用來建立VCL這樣的多層次的對象,首先建立通用對象,然後建立這些通用對象的有專用功能的子物件
3)多態性:從字面上看,是指多種形狀。調用一個物件變數的方法時,實際被調用的代碼與實際在變數中的對象的執行個體有關
二、Delphi不支援多繼承
Delphi不想C++那樣支援多繼承,多繼承是指一個對象能夠繼承兩個不同的對象,並包含有兩個父類對象的所有資料和代碼
Delphi提供了兩種方法來解決這個問題
1)在一個父類中包含其他的類,你能從Delphi的VCL中看到這種解決方案。
2)使用介面
三、需要瞭解的Delphi的物件導向相關的三個術語
1)域(field),也被稱為域定義或者執行個體變數,域是包含在對象中的資料變數。在對象中的一個域就像是在Delphi記錄一個域,在C++中它被稱為資料成員
2)方法(method),屬於一個對象的過程和函數名,在C++中它被稱為成員函數
3)屬性(property),屬性是外部代碼訪問對象中的資料和代碼的訪問器,屬性隱藏了一個對象的具體實現的細節
注意:最好不要直接存取對象的域,因為實現對象的細節可能改變。相反用訪問器屬性來訪問對象,它不受對象細節的影響
四、基於對象和物件導向的編程
在某些工具中,你能操作對象但是不能建立對象,Visual Basic中的ActiveX控制項(以前成為OCX)就是例子。雖然在程式中你能用ActiveX控制項,但是你不能建立它,也不能派生它。這樣的環境就被稱為基於對象的環境
Delphi是完全的物件導向的環境,這表示在Delphi中你能用已經存在的組件建立新的對象,這些對象是可視的或者不可視的,甚至可以是設計時的表單
Delphi物件導向編程