此篇文章來探討,程式語言中的類別是甚麼? 類別: 1. 概論: 類別 (class) 像是一個模子一般,同一個模子做出來的東西都有著一致的特性。 Java 是以 class 的語法結構來封裝 (encapsulation) 一般化的描述。若用類別產生出來的東西稱為一個實例 (instance) 、物件。 類別可定義為: 類別就像是一張藍圖般,其中定義出屬性及方法合稱為特性 (features) ,任何用這張藍圖產生的物件都有著一樣的特性,但是物件間的狀態則可能有所不同。在物件導向的技術裡,類別除了是物件的一般化描述外,類別也是一種分類 (categorization) 的方式。 2. 抽象化: 發現類別成員 - 現實生活物件的抽象化 (1) 雖是同類物件的一般化描述,但是 每個物件都有一份屬於自己的屬性及方法 ;在程式裡,利用類別 (class) 來模擬物件時,各別的物件除了保有自己所屬資料外,方法是所有同類物件所共有的。除此之外,程式設計時,軟體的類別還可以定義不屬任一物件所獨有,而是該類別所共有的資料,稱為 class variable ( 若針對物件本身所屬的資料稱為 instance variable ) 。這個 class variable 有個特徵:當任何一個物件改了它後,其他物件一旦用到這個資料的話,一定是用到更改後的資料。 (2) 甚麼時候用到 class variable ?當用來 描述某一個狀態的屬性,對所有物件而言都是相同的 ,就可以將這個屬性定義成 class variable 。如,程式裡設計了一個腳踏車的類別,而預期所有用該類別生產出的實例 (instance) 都一定有兩個輪子的話,就可以將輪子的屬性狀態設為 2 。如果將那個屬性用 instance variable 來做的話, 100 個物件就必須保有 100 份的 instance variable ,對系統資源浪費。 (3) 在物件導向思維裡,根據系統的需要,程式設計師將真實世界裡物件的屬性及方法中挑選適合開發需要的過程稱為 abstract ,這個字一般翻成抽象化 ( 摘錄、節錄及篩選 ) 。 例如,同樣是一個用來表示「人」的物件,用於人事薪資系統與用於醫療作業系統時,顯然在這兩個不同的系統裡,「人」的類別應該會有不同的屬性與方法;比如說,在醫療作業系統裡可能會有...