類別Class、物件Object 和實體Instance的差別?[轉錄] - AI反斗城
文章推薦指數: 80 %
類別Class、物件Object 和實體Instance的差別?[轉錄] · 類別算是一個藍圖、一個範本、一個可參考的文件,他沒有實體(Instance) 的概念,屬靜態的。
· 物件是一個看的到、摸 ...
GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWritePublishedinAI反斗城類別Class、物件Object和實體Instance的差別?[轉錄]這次要介紹在物件導向技術中三個經常容易搞混的名詞,分別是object、class、instance。
首先看一下Object-OrientedSoftwareEngineering這本書對於這三個名詞的定義:Object:Anobjectischaracterizedbyanumberofoperationsandastatewhichrememberstheeffectoftheseoperations.(p.44)Class:Aclassrepresentsatemplateforseveralobjectsanddescribeshowtheseobjectsarestructuredinternally.Objectsofthesameclasshavethesamedefinitionbothfortheiroperationsandfortheirinformationstructures.(p.50)Instance:Aninstanceisanobjectcreatedfromaclass.Theclassdescribesthe(behaviorandinformation)structureoftheinstance,whilethecurrentstateoftheinstanceisdefinedbytheoperationsperformedontheinstance.(p.50)以下為上述定義翻成白話文再加上一點Teddy個人補充的資料:Class是用來定義object的一種東西,class的內容包含了動作(operations)與資料(data)。
動作(operations)、方法(methods)和行為(behaviors)可以看作同義詞。
理想上一個object的狀態只能透過動作去改變它。
一個object就是某個class的instance,換句話說可以把object和instance看作是同樣的東西。
只是在某些場合大家比較習慣用object這個說法,其他場合則是會用instance。
例如,List
資料成員(datamembers)和屬性(attributes)是同義詞,都是用來儲存物件的狀態。
如果一個class沒有任何資料成員,這個class所產生的所有objects看起來就會是一模一樣的東西。
也就是說,可以把一個沒有狀態的class變成一個staticclass,不用產生任何instance就可以呼叫該class的operations。
類別(Class)與物件(Object)是個一體兩面的東西,以下我用幾個不同的方式說明這兩著的差別:簡單解釋:類別算是一個藍圖、一個範本、一個可參考的文件,他沒有實體(Instance)的概念,屬靜態的。
物件是一個看的到、摸的到的實體,屬於動態的,狀態會隨時改變,但架構與行為不會改變。
比喻一:建築物類別:設計藍圖物件:實際蓋好的房子兩者關係:設計藍圖(類別)決定房子應該怎麼蓋,決定幾台電梯、幾間房間、走道如何設計。
實際蓋好的房子(物件)是照著設計藍圖所蓋出來的房子,人只能照設計藍圖的設計使用這間房子。
比喻二:蓋世武功類別:武林密笈物件:修練武林密笈而成的武林高手兩者關係:武林密笈(類別)記載許多各種攻擊與回應的方式,讓武林高手(物件)知道遭遇到什麼攻擊時要用什麼招式回應。
程式設計:每執行到我們用new運算子時,等同於將物件產生,也等同於成功得到武林密笈可以開始練功,或是在「建構子」的時候就已經賦予你基本功力。
基本上,類別只用來決定物件形成時的樣子,當物件形成時,物件就變成一個記憶體中的空間,記載著物件活動時暫存的資料與狀態,並且當有類別存在時有能力透過方法(Method)執行一些動作。
[轉錄]1.什麼是物件導向(2):Object,Class,Instance2.物件導向基礎:何謂類別(Class)?何謂物件(Object)?MorefromAI反斗城分享AI資訊,紀錄AI學習過程ReadmorefromAI反斗城AboutHelpTermsPrivacyGettheMediumappGetstartedRyanLu258FollowersFollowHelpStatusWritersBlogCareersPrivacyTermsAboutKnowable
延伸文章資訊
- 1物件(Object)和類別(Class) - iT 邦幫忙
會怎麼回答? 我的看法是. 類別=設計藍圖. 物件=依照設計藍圖設計出來的實體 public class Cup { Public string ...
- 2定義類別(Class) | Java SE 6 技術手冊 - caterpillar
在物件導向設計中,物件並不會憑空產生,您必須識別出問題中的物件,並對這些物件加以定義,您要定義一個規格書,在Java 中這個規格書稱之為「類別」(Class),您使用類別 ...
- 3類別、物件- Java備忘筆記 - GitBook
類別定義物件的屬性、方法,利用類別可以產生物件。 · 物件有它所屬的屬性及方法,在記憶體佔有空間,物件導向的概念就是把真實世界抽象化為許多的物件,物件之間彼此會交互 ...
- 4類別Class、物件Object 和實體Instance的差別?[轉錄] - AI反斗城
類別Class、物件Object 和實體Instance的差別?[轉錄] · 類別算是一個藍圖、一個範本、一個可參考的文件,他沒有實體(Instance) 的概念,屬靜態的。 · 物件是一個看的...
- 5物件導向基礎:何謂類別(Class)?何謂物件(Object)? 分享
類別算是一個藍圖、一個範本、一個可參考的文件,他沒有實體(Instance) 的概念,屬靜態的。 · 物件是一個看的到、摸的到的實體,屬於動態的,狀態會隨時 ...