1. 程式人生 > >關於面向物件 女神告訴你什麼是三大特性

關於面向物件 女神告訴你什麼是三大特性

java零基礎入門-核心語法篇(三)

教材描述問題首先要考慮的就是嚴謹,不能有錯誤,但是正是因為嚴謹,導致語義晦澀難懂,所以往往成了勸退教材。有些看上去高大上,讓人摸不著頭腦的詞,一旦你理解了,發現也就那麼回事,並沒有什麼深不可測的東西,下面我們來揭開他們的神祕面紗吧。

說人話系列開講!!!

學java你肯定聽過這幾句話,面向物件程式設計?一切都是物件?

物件是啥?

先來看看教材上的描述:

具有相同或相似性質的一組物件的抽象就是類,類是對一類事物的描述,是抽象的,概念上的定義;物件是實際存在的該類事物的個體,因而也稱為例項(instance)。

物件的抽象化是類,類的具體化就是物件,也可以說類的例項是物件。類用來描述一系列物件,類概述每個物件應包括的資料,類概述每個物件的行為特徵。因此,可以把類理解成某種概念,定義,它規定了某類物件所共同具有的資料和行為特徵。      ------摘至《瘋狂java講義 第二版》

看完大神的描述你有啥想法?我當時看到這,不僅僅是一臉懵逼,是N臉懵逼...

要想徹底理解這個概念,必須要有一點點抽象思維。舉個例子,我們都有心中的女神和男神,但是女神和男神也許並不是唯一的,但是我們腦海裡會有一個潛意識,就是當我看一眼這個人,就會預設把他劃分為女神或者男神。這個意識是啥?就是你對女神或男神的抽象,這只是一個你定義女神,男神的標準,但這個標準你是看不見摸不著的。

比如你定義一個女神:身高XXX,膚白貌美,前凸後翹,腰細腿長,瓜子臉,翹鼻子大眼睛濃眉毛,看一眼就讓人神魂顛倒,心跳加速。

海賊王 -女帝

女帝符合我定義的所有標準,所以他是女神。我們再來看這句話 :

"類    是對一類事物                                              的描述,是抽象的,概念上的定義"

  女神 是對一類事物(那種你看一眼就心跳的人)的描述,是抽象的,概念上的定義;

"物件  是實際存在的該類事物              的個體,因而也稱為例項(instance)。"

  女帝  是實際存在的該類事物 ( 女神 ) 的個體,因而也稱為例項。

結論: 女神 是類女帝 是例項。懂了沒?繼續

"類概述每個物件應包括的資料,類概述每個物件的行為特徵 "

物件的資料和行為

類    概述                                    每個 物件                                應包括的資料

女神 概述(確定需要哪些標準) 每個 物件(你看到的妹子),應包括的資料(如身高,三圍,星座等等)

類    概述                                    每個物件                                  的行為特徵

女神 概述(確定需要哪些標準)  每個 物件(你看到的妹子),的行為特徵(喜歡什麼,討厭什麼等等)

總結:類定義了女神的標準,物件定義了具體的妹子的資料和興趣愛好。類是抽象概念,看不見摸不著,物件是實際存在的,看得見,摸...的著。

懂了沒?還沒懂你語文估計是體育老師教的,我已經使出渾身解數來幫你理解了。


繼續看看面向物件還有哪些高大上的名詞 

三大特性是:封裝,繼承,多型

學面向物件一定要搞清楚這三個概念

封裝

看見女神就想衝上去加微信,要號碼,甚至還想知道年齡,三圍,體重,興趣愛好?抱歉,這是隱私好嘛!問不到資料怎麼辦?如果小姐姐對你也有點興趣,當然會指點你,“後面那個是我閨蜜~”。

所謂的封裝其實也是一樣,我不直接讓你操作和修改資料(女神不直接告訴你他的隱私),但是我會提供操作和修改資料的方法給你(你可以通過她指定的閨蜜瞭解到她的資訊)。

封裝就是這個意思,但是肯定有同學會問,道理我懂,那為啥要封裝呢?不封裝會咋樣?來看下面的例子

QQ修改資料

點開你的QQ,到編輯資料,你有沒有發現一個問題,性別是可以直接設定的,而年齡是不可以的,QQ只給你設定生日。為啥?這裡就有封裝的概念了。性別可以設定,因為這個隨便改影響不大,並沒有錯誤,比如你把QQ號送給別人,改性別很正常。但是如果你設定了生日,又可以改年齡,那會發生什麼?你撩了一個92年出生83歲的奶奶?昨天那個小哥哥說他23歲...生日是73年?看見沒,是不是有種天下大亂的感覺?所以最好的方式就是封裝年齡這個資料,然後給他一個修改的方法,就是通過修改生日去修改年齡,這樣就不會出莫名其妙的錯誤了。

繼承

我們上面說到了,定義一個男神或者女神會用到很多標準(屬性),但是會有很多屬性是重複的,只有部分標準是不一樣的。那當我們定義他們的時候,會有很多重複的操作,我們不妨在男神和女神上面再抽象一層出來,這樣會讓事情變得簡單。


抽象出人這個類

男神,女神都是人,我們把相同的屬性抽象出來,作為人這個類。這樣我們只需要寫一遍(年齡,性別,身高,體重,星座)即可,不用在每個類裡面都寫這些屬性,而女神,男神繼承人這個類,就自動獲得了人的所有屬性,無需再描述。繼承是重用程式碼的重要手段,就是我只寫一遍程式碼,其他需要的地方,"借去"用即可,不需要浪費時間再寫一遍。除了重用程式碼,繼承還有擴充套件的功能。這個又有同學要問了,我覺得 複製貼上很快啊 ,為啥要這麼麻煩?我們看看下面

繼續擴充套件

我們看到,女神還可以分為蘿莉和女王,蘿莉嬌小可愛,女王霸氣十足。男神也可以分為大叔和小鮮肉,大叔成熟穩重,小鮮肉陽光有活力。

如果隨著我們定義的概念變多,我們不僅需要寫更多的程式碼,而且還會讓有關係的概念產生混亂。在實際的專案中,更加複雜的情況比比皆是,如果不能有效的定義關係,不但寫的累,而且看不懂。當我們使用繼承,不但關係屢的很清楚,而且需要寫的程式碼少很多。

多型

女神的愛好就是多型,看見包就喜歡包,看見表就愛上表,明天看見保時捷就非要買車。你要問我愛好?那得看我心情。

多型涉及的知識較多,這裡暫時不展開講,後面學了更多的知識後,再詳細介紹。


好了,本章講類和物件,是因為下面我們學習程式碼馬上就會接觸到類,物件就乾脆一起講了。這只是初步的概述,後面真正講到面向物件的時候,還會著重講。大家慢慢消化吧。