物件導向OOP基礎概論 (以Delphi為例)
(一)、 何謂OO(Object Oriented)物件導向的程式語言 1. 類別與物件 傳統的程式設計概念將程式碼與資料視為分離的個體,程式雖然可以使用存取資料,但是資料並沒有受到保護,任何人都可以不當的存取資料﹔但是物件導向的程式設計則將程式與資料視為不可分離的實體,程式當然還是可以存取資料,只不過得勞駕物件當中的Method來幫你存取。 不過究竟什麼是類別﹔物件又是什麼?!許多初學者常感到疑惑的問題,我想我可能無法讓你聞道或是摸到物件,不過告訴你到哪裡找到相關資訊﹔而事實上 類別 (Class) 是一些物件的靜態定義,它就是定義著一些構成其類別之物件的資料型態及程式碼,有些初學者以為類別與物件沒什麼不同,那我想它還沒真正接觸了解一個類別,其實這連程式碼的定義結構都不同, 物件 就好比是類別當中的一個 變數 ,而最大的差別就是它不只是當一般變數而已, 物件 可以是定義的資料型態或是 方法 ( Method )、程序(Procedure)、函式(Function)。 2. 物件的內容 在Delphi環境中到處是物件,你在 元件盤 (Object Inspector)上所看到的,還有程式設計所用到的元件,或者某些物件的特性就是一個物件,如或一般表單(Form)、Button、Memo、CheckBox等等可視元件(視覺化的看的見的)上都會有的Font屬性、或 MainMenu 元件的Items屬性都是一個物件,甚至表單本身也是個物件,一般我們要定義一個物件會先定義這個物件的類別,如圖一:當Delphi開一個新 Application Project 時就已經幫我們建立起一個 繼承 於 TForm 的 Form1 類別,此類別中我們使用了一個TButton元件( VCL 類別 ),也使用了TButton的Click方法, 記住:在 Delphi中你所看到的以T開頭的即是一個類別〔也就是一個VCL類別,因為Delphi的Framework是VCL(Visual Component Library)〕 ,如此範例中我們使用了 TForm 及 TButton 這兩個類別。 圖(一): ( 二) . OO(Object Oriented)的基本特性 (1). Encapsulation .封裝 (2). Inheritance 繼承 ...