資源描述:
《現(xiàn)實世界VSJava世界》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第2章現(xiàn)實世界VSJava世界——了解面向?qū)ο蟮腏ava2.1萬事萬物皆對象——理解對象模型2.2對象之間的差別——事物的屬性2.3萬物皆有變化——對象的方法2.4“物”以“類”聚——什么是“類”2.5為什么要面向?qū)ο缶幊?.6程序中的對象——Java的對象世界2.7內(nèi)外有別——對象的封裝2.8絕知此事要躬行——自己動手定義對象2.9小結(jié)2.10習題2.1萬事萬物皆對象——理解對象模型2.1.1程序員眼中的世界——現(xiàn)實世界中的對象2.1.2什么是“對象”2.1.3現(xiàn)象世界中的對象2.1.1程序員眼中的世界——現(xiàn)實世界中的對象現(xiàn)實世界中的事物是怎么樣的一回事,我們怎么去看待它們是另一回事。大家不
2、要誤會,我們不是在這里跟大家討論“唯物與唯心”這一哲學問題的。只不過,下面開始向大家介紹的“對象”這一概念與此有關(guān)罷了。聽上去很玄,實際上這只是一種看待世界上所有事物的一種方式,一種理解現(xiàn)實世界的思維。2.1.2什么是“對象”1.對象的英文單詞——Object2.直觀地認識一下對象世間萬物都是一個個的對象,而對象就是這些事物的一個統(tǒng)稱??匆幌聢D2.1中的內(nèi)容,可能會有更直觀的認識。圖2.1什么是對象2.1.3現(xiàn)象世界中的對象1.現(xiàn)實世界中的一些具體對象2.由現(xiàn)實世界中的事物抽象為對象來看下面的圖2.2,圖中列出了3種類型的電腦,以及我們對這3個“對象”所關(guān)注的特性。圖2.2各種對象只是為了抽象
3、事物的特性2.2對象之間的差別——事物的屬性2.2.1何為對象的屬性2.2.2對象與屬性的關(guān)系2.2.1何為對象的屬性1.不同對象的屬性值不同在圖2.3中給出了對象“Laptop1”和“Laptop2”的一些屬性值。這些值有時可以用來區(qū)別這兩個不同的對象。圖2.3不同屬性值可以區(qū)分不同的對象2.不同對象具有不同的屬性我們可以參考一下圖2.4來看看不同對象的屬性。圖2.4不同的屬性可以區(qū)分不同的對象3.屬性與對象間的關(guān)系下面接著來看另一個例子,如果只拿電子產(chǎn)品來舉例子,那樣會限制大家的思路,雖然大家對這類產(chǎn)品非常熟悉。但這會影響對“屬性”這個概念的理解。不要覺得“屬性”只存在于由實物抽象出來的對
4、象當中,一些本來就屬于抽象類型的對象也有相應(yīng)的屬性。圖2.5對象與屬性之間的關(guān)系2.2.2對象與屬性的關(guān)系我們所關(guān)注的對象屬性中,對于任何一個屬性都具有3個方面:屬性所屬的對象、屬性名稱、屬性的值。繼續(xù)看圖2.6,PC1和PC2這兩個對象所擁有的屬性名稱都是一樣的,只是某些個別的屬性值不相同。我們可以根據(jù)這些不同屬性的值來確定這兩個對象是不相同的。圖2.6對象的屬性值可以發(fā)生變化2.3萬物皆有變化——對象的方法2.3.1對象的方法定義2.3.2對象方法的一個示例2.3.1對象方法的定義1.什么是方法2.方法與對象間的關(guān)系,如圖2.7所示。3.對象的變化與對象的方法。圖2.7對象Cat和Dog的
5、方法2.3.2對象方法的一個示例1.對象與方法的例子圖2.8中列出的一個對象——AirConditioner,以及它的3個屬性和對應(yīng)的5個方法。這些屬性和方法已經(jīng)可以抽象出一個簡單的“空調(diào)”對象,我們忽略了空調(diào)的其他所有特性及參數(shù)等,只來關(guān)心它的最主要的功能——調(diào)節(jié)室內(nèi)溫度。圖2.8對象的屬性和方法2.方法的具體過程圖2.9中描述出了空調(diào)從開機工作直到用戶切斷電源、停止工作的整個過程所涉及的方法。圖2.9空調(diào)對象工作過程中所用的方法2.4“物”以“類”聚——什么是“類”2.4.1為什么要定義“類”這個概念2.4.2什么是“類”,類與對象的關(guān)系2.4.3“類”與“類”之間的關(guān)系2.4.1為什么要
6、定義“類”這個概念1.對象要由類來定義對象只是現(xiàn)實世界中的一些具體事物的抽象。需要在抽象的過程中,對現(xiàn)實世界中的這些對象有個明確的定義,如圖2.10所示。圖2.10類定義對象,就像餅干模具生產(chǎn)餅干2.類可以用來抽象一些對象的共同特征在圖2.11中,一共給出了3個具體的對象,它們分別為3臺不同類型的計算機,但它們都具有“計算機”這一類別的所有共同特征,可以說這3個對象都屬于“計算機”這一個類別。圖2.11由一些對象可以抽象為“類”3.通過類的層次可以更清晰地表述對象間的關(guān)系圖2.12蘭科植物的分類圖2.4.2什么是“類”?類與對象的關(guān)系1.“類”的定義2.從“類”具體化到對象圖2.13中給出了更
7、多的由類具體到對象的例子。從這個圖中也可以看到,現(xiàn)實中的所有事物都可以抽象為類。任何類都可以具體化為一個相應(yīng)的對象。圖2.13類與對象的關(guān)系2.4.3“類”與“類”之間的關(guān)系在類的結(jié)構(gòu)圖中,由于上一層的類是由下面一層的類抽象來的(最下面一層除外,它們是直接由對象抽象而來的),所以,可以得出這樣的結(jié)論:在下面一層的類中,包括上面所有類的特征。除此之外,下面一層的類還有可能包含上一層的類所沒有的其他特