物件與類別

文章推薦指數: 80 %
投票人數:10人

認識物件導向. 物件導向的觀念 在物件導向程式語言的環境裡,程式設計師的焦點放在每一個物件上,設計時只需設定每個物件在發生特定事件時執行特定工作,並不需要像 ... 認識物件導向 物件導向的觀念  在物件導向程式語言的環境裡,程式設計師的焦點放在每一個物件上,設計時只  需設定每個物件在發生特定事件時執行特定工作,並不需要像以前一樣規畫整個  程式的執行流程,而且其他程式需要時,也可以自由的複製物件。

物件導向語言  事實上遠在1967年的Simula-67就是屬於物件導向的語言,但當時根本沒有人注  意,直到70年代中期Smalltalk語言問世後,物件導向語言才開始引起人們的興  趣。

80年代C++的出現,更是炒熱了物件導向語言的市場,往後新上市的程式  語言都免不了要遵循這個趨勢,例如微軟的VisualBasic 及VisualC++ ,寶藍(  Borland)的Delphi(Object Pascal)以及現在最熱門的爪哇(JAVA)語言...等都  具有物件導向的特性。

物件與事件  真實世界中的「物件」,其實就是我們習以為常的「東西」。

 ‧物件與類別   類別是物件相同特性和行為訊息的集合,例如「人」是一種類別,而你、我、   小明、大華...等都是屬於「人」這個類別的一個物件。

       ‧物件具有屬性   每一個物件都有許多屬性,例如一個「人」便具有「髮色」、「身高」、「體   重」、「性別」...等不同的屬性。

              ‧事件和事件程序   每一個物件都可以對一個被稱為事件(Event)的動作進行辨識和回應,物件   對事件的回應方法稱為事件程序。

例如,當我們「打」「小明」時「小明」會   「喊痛」,「打」便是作用在物件「小明」上的事件,而「喊痛」就是物件「   小明」所回應的事件程序。

          物件導向的特性  在物件導向程式設計的環境中,一個圖示、一個按鈕或文字欄位…等都是物件,  每個物件都包含資料以及相關的指令。

當程式執行時,物件便等待事件發生,然  後再採取相關行動(即事件程序),這稱為事件驅動(Event-Driven),也是物  件導向程式與傳統程式之間的最大差別。

物件導向語言還具有以下特性:  ‧繼承性   一個物件擁有類別中部份或所有的特性,稱為繼承性(Inheritance)。

例如,   不論工人、農人、商人、運動員與設計師...等都是「人」,即使工作崗位不同   但仍都一樣具有「身高」、「體重」、「性別」...等屬性。

在物件導向程式設   計的環境中,程式設計師不須重覆撰寫經由繼承而來的設定指令,藉此節省開   發時間。

 ‧包裝性   當我們去餐廳吃飯時只要告訴老闆「我要吃排骨飯」,至於這塊排骨是怎樣選   購、切割、浸料、沾粉、油炸...等烹飪流程我們都不必理會。

烹飪的複雜性被   隱藏起來,使用者只要注意基本的操作如點餐的動作即可。

同樣的,物件導向   將事件程序及屬性的程式碼包裝在一起,使程式設計師不須為每一個細節煩惱   ,這樣的特性便稱為包裝性(Encapsulation)。

 ‧多型性   「小華」或「小明」都一樣可以進行「掃地」的工作,只要我們告訴他「去掃   地」即可。

同樣的,程式設計師可用同樣的敘述來執行不同物件中相同的方法   ,這個特性稱為物件導向程式設計的多型性(Polymorphism)。

 ‧抽象性   一般高階語言利用函數來處理相關程序,物件導向程式設計則將變數抽象化,   讓使用者可以更容易使用,這樣的特性稱為抽象性(Abstraction)。

例如以「   視窗.開啟」代表開啟視窗的動作,而「視窗.關閉」則表示關閉視窗的動作。

         



請為這篇文章評分?