DANCE WITH JAVA

          開發(fā)出高質(zhì)量的系統(tǒng)

          導(dǎo)航

          <2015年8月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          隨筆分類(277)

          隨筆檔案(238)

          閱讀排行榜

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          好友之家

          最新評論

          對象與實(shí)例的區(qū)別

          這真是個(gè)無聊的話題,在之前我一直以為這是一件事情的兩個(gè)叫法,到后來看 <<精通EJB>>一書,書中對這兩個(gè)的概念明顯是有些區(qū)別的,于是開始搜索一下。找了很多地方都沒有答案,同時(shí)發(fā)現(xiàn)這個(gè)問題也不只是我一個(gè)人的問題,很多地方都在討論。例如這些地方
          http://forum.java.sun.com/thread.jspa?threadID=654144&messageID=3845005
          http://www.geekinterview.com/question_details/17747

          而且很多地方有對象實(shí)例? instance of object 的寫法。真是讓人迷惑啊。
          查了一些資料,經(jīng)過分析,現(xiàn)在覺得這個(gè)結(jié)論還是比較容易讓人理解:
          類-->對象-->實(shí)例
          人類是類
          某個(gè)人是對象
          你是實(shí)例
          實(shí)例本身也是對象。

          表現(xiàn)出來是這樣的
          String 類
          String str?? str是對象
          String str = "abc";? "abc"是實(shí)例,也是對象.
          這樣也能解釋instance of object這種說法? str的實(shí)例是"abc"

          暫時(shí)先這么理解,希望有人能提出更好的理解方法和見解。。。

          posted on 2007-03-04 13:47 dreamstone 閱讀(19362) 評論(20)  編輯  收藏 所屬分類: jdk相關(guān)

          評論

          # re: 對象與實(shí)例的區(qū)別 2007-03-04 16:12 我為J狂

          老外就是喜歡鉆牛角尖,累不累呀!有什么意義嗎?
          下面是我的一點(diǎn)看法,希望這種無聊的討論不要繼續(xù)下去了。
          例如:
          Student是一個(gè)類,
          語句
          Student s; //只是聲明了一個(gè)引用,并不關(guān)聯(lián)到特定的實(shí)例
          Student s = new Student();
          上面語句實(shí)例化了一個(gè)Student對象,new Student()是調(diào)用類的構(gòu)造函數(shù)產(chǎn)生實(shí)例。最后讓引用和實(shí)例相關(guān)。
          所以對象的引用和實(shí)例是不同的。s 是Student對象或?qū)嵗囊?。對象和?shí)例的概念是相同的。
          如果僅用
          Student s;
          聲明引用后,無法調(diào)用object的屬性和方法,因?yàn)樗⒉缓腿魏螌?shí)例相關(guān)   回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2007-03-05 15:10 wanglinghua

          我覺得對象和實(shí)例是一個(gè)概念,也可以說成實(shí)例對象。 - 個(gè)人理解  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2007-03-05 19:13 dreamstone

          @我為J狂
          這個(gè)和鉆牛角尖沒有關(guān)系,在這點(diǎn)上大部分老外做的更好,他們會投入很大經(jīng)歷去分析一個(gè)又一個(gè)問題,然后得出結(jié)論,然后嚴(yán)格遵守。而我們大部分人則習(xí)慣做的時(shí)候臨時(shí)思考,經(jīng)常在相同的問題上得出不同的答案。這也是為什么國人聰明(世界公認(rèn)),但在近代大師越來越少(浮躁是一個(gè)重要的原因,不求甚解啊)。

          我自己就經(jīng)常犯這樣的錯(cuò)誤,很多問題一遍又一遍,雖然學(xué)習(xí)知識本來就是個(gè)漸進(jìn)過程,但因?yàn)槿菀诐M足造成的多次學(xué)習(xí)還是有很大一部分。

          另外我看了不少Ejb的資料里變都會用到"Ejb對象" "企業(yè)Bean"實(shí)例,這樣分開的說法。如果沒有必要區(qū)別的話,其實(shí)"Ejb對象" "企業(yè)Bean"對象 或者"EJB實(shí)例" "企業(yè)Bean實(shí)例"的說法可能更容易讓人接受,為什么分開其實(shí)是有一些道理的,可以自己細(xì)細(xì)品味一下。

          個(gè)人感覺由于語言的差異,很多用英語解釋很簡單的,換成中文解釋就很麻煩。
          所以平時(shí)看書的時(shí)候很喜歡中文,但到一些關(guān)鍵點(diǎn)還喜歡拿英文原文來對比一下。我想這也是候捷等人在翻譯書的時(shí)候保留一些詞語的原文的原因.  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2007-03-05 19:19 dreamstone

          @wanglinghua
          有沒有區(qū)別是分場合的,比如我的例子中的某個(gè)人和張三.
          如果我給李四講張三的趣事,說某個(gè)人和說張三是沒有區(qū)別的。 因?yàn)閺埲彩悄硞€(gè)人。某個(gè)人也可以替代張三。
          但如果我說的是發(fā)工資呢,我把"把工資發(fā)給張三"換成"把工資發(fā)給某個(gè)人"怕張三會來找我打架吧。認(rèn)為沒有區(qū)別是因?yàn)檫€沒有遇到有區(qū)別的情況,就象泥一直在講故事,無論是張三也好,李四也好,某個(gè)人也好是一樣的。

          話題扯遠(yuǎn)了,其實(shí)這個(gè)文章開始就說明這篇文章并不值得討論,只是為了讓一些和我一樣對這個(gè)問題產(chǎn)生疑惑的人盡快解決這個(gè)問題,而不至于在一個(gè)字眼上浪費(fèi)太多的時(shí)間。
            回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2007-03-05 22:13 我為J狂

          @dreamstone
          看來您是誤解我的意思了,我不是推薦大家浮躁,不求甚解,而是不要研究那些老外發(fā)明的文字游戲。Java是外國人發(fā)明的,大家都知道,對于老外東西的學(xué)習(xí),要取其精華取其糟粕,他們經(jīng)常發(fā)明一些同一概念的不同名詞,來宣揚(yáng)自己科學(xué)的偉大,甚至對于人類登月的照片都可以造假,決不能迷信他們的東西,我們要相信自己民族的能力,不要盲從他們的理論,對于他們所謂的“對象”還是“實(shí)例”的爭論,還是適可而止吧!  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2007-03-10 01:31 ...

          對象是一個(gè)統(tǒng)稱
          可以分為類對象和實(shí)例對象
          類對象是實(shí)力對象的模版
          類似的概念有原類(metaclass),是類的模版  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2007-06-13 11:04 老燈

          頭暈眼花  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2007-11-30 01:39 111

          str是引用reference 不是object "abc"是對象object也叫實(shí)例insatnce  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別[未登錄] 2007-11-30 13:26 dreamstone

          補(bǔ)充一些內(nèi)容:
          對象的產(chǎn)生有兩種基本方式。一種是以原型(prototype)對象為基礎(chǔ)產(chǎn)生新的對象。一種是以類(class)為基礎(chǔ)產(chǎn)生新對象。原型的概念已經(jīng)在認(rèn)知心理學(xué)中被用來解釋概念學(xué)習(xí)的遞增特性,原型模型本身就是企圖通過提供一個(gè)有代表性的對象為基礎(chǔ)來產(chǎn)生各種新的對象,并由此繼續(xù)產(chǎn)生更符合實(shí)際應(yīng)用的對象。而原型-委托也是OOP中的對象抽象,代碼共享機(jī)制中的一種。一個(gè)類提供了一個(gè)或者多個(gè)對象的通用性描敘。從形式化的觀點(diǎn)看,類與類型有關(guān),因此一個(gè)類相當(dāng)于是從該類中產(chǎn)生的實(shí)例的集合。而這樣的觀點(diǎn)也會帶來一些矛盾,比較典型的就是在繼承體系下,子集(子類)對象和父集(父類)對象之間的行為相融性可能很難達(dá)到,這也就是OOP中常被引用的---子類型(subtype)不等于子類(subclass)[Budd 2002]。而在一種所有皆對象的世界觀背景下,在類模型基礎(chǔ)上還誕生出了一種擁有元類(metaclass)的新對象模型。即類本身也是一種其他類的對象。以上三種根本不同的觀點(diǎn)各自定義了三種基于類(class-based),基于原型(prototype-based)和基于元類(metaclass-based)的對象模型。而這三種對象模型也就導(dǎo)致了許多不同的程序設(shè)計(jì)語言(如果我們暫時(shí)把靜態(tài)與動態(tài)的差別放在一邊)。是的,我們經(jīng)常接觸的C++,Java都是使用基于類的對象模型,但除此之外還有很多我們所沒有接觸的OOPL采用了完全不一樣的對象模型,他們是在用另外一種觀點(diǎn)詮釋OOP的內(nèi)涵。

          相對應(yīng)的Java中產(chǎn)生對象的方法:
          1, new Class()
          2,Object.clone()

          應(yīng)該就是對象實(shí)例,類實(shí)例區(qū)別吧。
          由類來產(chǎn)生,由對象來產(chǎn)生。

          對應(yīng)js中的prototype的方式來實(shí)現(xiàn)各種oo
            回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2008-04-01 13:43 不懂

          我說不清楚,但是在某些情況下,對象和實(shí)例是又區(qū)別的。  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2008-04-25 13:14 qiqig35b

          我覺得樓主這個(gè)比喻很對。  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別[未登錄] 2008-04-27 16:02 zz

          樓主這個(gè)比喻不錯(cuò),支持樓主!  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2008-08-18 09:58 陳炬

          你說的內(nèi)容跟我的知識有很大沖突哦,hoho。
          我覺得沒有什么區(qū)別,不是常常有這樣的說法的么:object is an instance of class....
          另外instance of object, 會不會這個(gè)object是指java的Object類???  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2008-08-18 10:04 陳炬

          @dreamstone
          確實(shí),在許多地方一個(gè)object也可以有許多instance的,就是一個(gè)object也可以看成是類。
          比如,在語義網(wǎng)的RDF規(guī)范中,就是如此。人是生物的instance,張三是人的instance....一個(gè)具體化的過程。
          但是具體到j(luò)ava語言,我覺得java里面instance跟object是一回事情。  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2009-04-15 18:14 不知道

          @不懂
            回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2010-01-24 15:40 Kite

          類僅僅是一個(gè)概念。
          對象具有群體性
          實(shí)例是一個(gè)具體的對象。

          類的對象和實(shí)例是有區(qū)別的。  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2011-06-03 14:35 無名網(wǎng)友

          我覺得很簡單,類-對象-實(shí)例,無非就是類型,該類型所聲明的變量,變量所存儲的內(nèi)容。  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別 2014-03-25 14:12 呃呃

          @Kite
          這說法不錯(cuò)  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別[未登錄] 2015-03-18 08:01 jason

          類可以比喻一個(gè)大盒子,對象是大盒子里面的零散的東西,而實(shí)例是大盒子里面的很多小盒子,小盒也可以裝對象那種,對不對,各位大神?。。來自初學(xué)者的淺談,,,  回復(fù)  更多評論   

          # re: 對象與實(shí)例的區(qū)別[未登錄] 2015-08-19 10:13 jackson

          @jason
          沒有章法的理解方式,我只能說:不對  回復(fù)  更多評論   

          主站蜘蛛池模板: 仪陇县| 莎车县| 舒兰市| 西林县| 梅州市| 青海省| 凤凰县| 双江| 多伦县| 南雄市| 保山市| 和静县| 疏附县| 通化县| 平定县| 开原市| 濮阳县| 讷河市| 溧阳市| 体育| 综艺| 云浮市| 静安区| 库尔勒市| 拉孜县| 霞浦县| 长治市| 正安县| 乡宁县| 江津市| 东乌| 尼木县| 石景山区| 伊川县| 巴楚县| 娱乐| 香港 | 嘉义县| 临泽县| 公主岭市| 新泰市|