類別、物件

定義好在Java上物件導向的基本名詞,以及類別與物件的關係。

類別 class

類別定義物件的屬性、方法,利用類別可以產生物件。

物件 object

物件有它所屬的屬性及方法,在記憶體佔有空間,物件導向的概念就是把真實世界抽象化為許多的物件,物件之間彼此會交互運作。

定義類別

Java是純物件導向的程式語言,而物件透過類別產生的,因此我們最一開始要先定義好我們的類別。

定義類別的方法:

class 類別名稱{
    // 定義屬性
    // 定義方法
}

這是最簡單的類別定義,我們試著把它想像成現實世界的情況:

class 人類{
    姓名、年齡、身高;
    吃飯()、睡覺();
}

在上面的範例中,人類這個類別有三個屬性:姓名、年齡、身高,以及兩個方法:吃飯、睡覺。

創造物件

有了定義好的類別後,就可以來創造物件,創造物件分成兩個部份:

  1. 宣告

  2. 初始化

類別名稱 物件名稱;              //宣告
物件名稱 = new 類別建構子();    //初始化

以上面定義好的人類類別來舉例:

人類 小木;
小木 = new 人類();

也可以寫成一行,這也是一般人常見到的用法:

人類 小木 = new 人類();

此時在記憶體中的配置如圖所示:

如果只有宣告物件,那只會在記憶體中配置一塊記憶體,叫做該物件的名稱。如上圖中左手邊的部份。

物件名稱透過 new 這個關鍵字,利用『建構子』進行初始化。會依照事先定義好的類別在記憶體中劃一塊空間,然後將該空間的記憶體地址回傳給物件名稱,此時物件名稱就與真正的類別定義好的欄位跟方法連結起來,就像上圖的紅色箭頭。

這樣就完成我們所預期的目標了:創造一個名叫小木的人類,具備有人類的所有屬性及方法。 這個動作也稱為物件的實體化(instantiated)。

一個實體(實例、instance)就是在記憶體中佔有空間的一個物件。

Last updated