類別、物件
定義好在Java上物件導向的基本名詞,以及類別與物件的關係。
類別 class
類別定義物件的屬性、方法,利用類別可以產生物件。
物件 object
物件有它所屬的屬性及方法,在記憶體佔有空間,物件導向的概念就是把真實世界抽象化為許多的物件,物件之間彼此會交互運作。
定義類別
Java是純物件導向的程式語言,而物件透過類別產生的,因此我們最一開始要先定義好我們的類別。
定義類別的方法:
這是最簡單的類別定義,我們試著把它想像成現實世界的情況:
在上面的範例中,人類這個類別有三個屬性:姓名、年齡、身高,以及兩個方法:吃飯、睡覺。
創造物件
有了定義好的類別後,就可以來創造物件,創造物件分成兩個部份:
宣告
初始化
以上面定義好的人類類別來舉例:
也可以寫成一行,這也是一般人常見到的用法:
此時在記憶體中的配置如圖所示:
如果只有宣告物件,那只會在記憶體中配置一塊記憶體,叫做該物件的名稱。如上圖中左手邊的部份。
物件名稱透過 new 這個關鍵字,利用『建構子』進行初始化。會依照事先定義好的類別在記憶體中劃一塊空間,然後將該空間的記憶體地址回傳給物件名稱,此時物件名稱就與真正的類別定義好的欄位跟方法連結起來,就像上圖的紅色箭頭。
這樣就完成我們所預期的目標了:創造一個名叫小木的人類,具備有人類的所有屬性及方法。 這個動作也稱為物件的實體化(instantiated)。
一個實體(實例、instance)就是在記憶體中佔有空間的一個物件。
Last updated