這篇文章來探討"物件",物件到底是何物?有甚麼特點?
物件:
1.物件可以用兩個向度來描述,狀態與行為:
(1)狀態(state):用來描述物件的靜態資訊,例如表示汽車的油量值。物件的狀態是透過一個以上的欄位(field)、屬性(attribute)所構成。將一個物件的所有屬性目前的情形組合起來便稱為物件的狀態。
狀態注重的是目前的情形,因此當欄位、屬性的內容有了修改,就表示物件的狀態也跟著改變。
(2)行為(behavior):用來描述物件的動態服務,例如表示汽車的發動功能;通常也稱作是operation(操作)、service(服務)或是method(方法)。
物件可定義為:
物件具由一定的結構(structure),這個結構是由欄位、屬性(fields, attributes)與行為(behaviors)所組成的一個單元;物件透過屬性來表現其所特有的特性而呈現其位於某一時點的狀態(state),並透過行為方式來表現其能力;其中屬性與方法合稱為該物件的特性(features)。
2.物件的合作:程式中常常有需要同時動用到多個物件才能完成任務,例如一個Point點的物件與一個表示Line線段的物件,這樣才能算出兩點構成的線段到底有多長。
3.物件的溝通:各個物件之間互動攸關彼此合作的成效,互動就是要求互動的物件,傳遞給與之互動的另一物件一道「訊息(message)」。簡單說就是方法的呼叫,例如,Main()方法,呼叫Console的WriteLine()方法。
要求互動者、接受溝通者及一道訊息的溝通過程,稱之為「訊息傳遞(message passing)」。訊息順利傳遞,在程式語言裡稱作參數(parameters),而傳遞參數的過程,稱為參數傳遞(parameter passing)。
4.物件程式化:在OOP世界裡,將變數(狀態)與函數,將這兩項以一個稱作class的結構封裝(encapsulation)起來,成為物件的一般化描述,變數而稱為欄位(field);函數,則被稱之為運算(operations)、方法(methods)。前述欄位、運算與方法被統稱為該class的成員(members)。(如資料成員,成員函數)
如:
class Car
{
製造商;
汽缸數;
啟動;
煞車;
轉彎;
}
這樣將物件的屬性與方法包裝起來成為一個結構的思考稱作封裝(encapsulation)。封裝好處是可以免除外界的干擾與誤用。要存取時,有存取權限的設定,程式中透過所謂的存取權修飾符號(access modifier)來做設定。
2016/10/05 碰騰
留言
張貼留言