物件導向是什麼呢?????? 很多人會說,物件導向是一種思想,是把世間萬事萬物都理解為對象的東東。哥沒有那麼高的境界,哥一下子理解不了那麼深刻的東東。 哥物件導向的思想只是來自哥的編程經驗。 哥上學的時候學習的是c語言,工作之後使用c++。 哥知道c是面向過程的程式設計語言,而c++是物件導向的語言。 而c++又是c的超集。所以物件導向是什麼呢?怎麼才能物件導向呢?答案是只要把c++相對於c多出來的東西,搞明白就能理解物件導向啦。c++是c的超集,相比c多出了很多東西。但是真正具有劃時代意義的還是三個大特性:封裝,繼承,多態。所以物件導向就是封裝,繼承,和多態。
那什麼是封裝呢??簡而言之,言而總之,就是把一堆東西包起來,和你用垃圾袋把家裡的垃圾包起來沒什麼兩樣。那為什麼要封裝啊??聽哥慢慢道來。假定現在你家裡有很多垃圾,你要把垃圾丟到垃圾堆,怎麼辦?只要你不是頭腦缺氧,腦子進水型的選手,你都會首先選擇一個塑料袋。那你為什麼要選擇垃圾袋呢,哥要是問你這個問題,你估計會抽哥,答案當然是為了把垃圾包起來,方便丟走啦。代碼裡面的封裝和垃圾袋沒什麼區別,都是為了把你寫的一堆code給包起來。封裝理解了吧,理解不了的話,這說明你沒倒過垃圾,或者你是千手觀音,能把所有的垃圾一次性都都丟出去。
那封裝搞明白啦,到底什麼東西該封裝到一塊呢。不要嫌噁心,哥還拿垃圾袋來比喻。你要是不知道該包什麼東西,那你看看你們垃圾袋裡面都是什麼東西就知道啦。垃圾袋裡面都是垃圾,都是要丟得東西,當然也有那種極度欠抽的人,他非得把好好地東西,比如水果,衣服,什麼的放垃圾袋。那是例外,畢竟很少人會真的那麼做。扯了半天鹹淡,一言以蔽之,垃圾袋裡面裝的都是一類東西。程式設計語言的封裝也這樣,你要把一類相同的東西封裝在一塊。如果你封裝了別的東西了呢,那你就是極度欠抽的人。
封裝搞明白啦,封裝什麼也搞明白啦。那封裝的目的是什麼呢?放心吧,哥這次不拿垃圾袋舉例啦,不用吐啦。能看到這篇文章的人,相信都或多或少喝過點墨水。大家都去過讀書館吧,沒去過圖書館的人,好歹也去過書店吧。為什麼每次去圖書館找書都非常方便呢,因為我們敬愛的圖書館管理員都把書給分類管理好啦。比如,你去找一本小譚譚的《c語言程式設計》。不要告訴哥,你去了圖書館就從一樓一排第一個書架的第一本說找起,到N樓N排第N個書架位置,他壓根就沒有這麼笨的人。聰明人出現了,他先去電腦上查一下,奧,“小譚譚”的書是電腦類的,是程式設計語言書架上的,書架地址在i樓i排。
OK, let‘s 狗。很快就把書找到啦。那封裝的目的和圖書分類一個樣,就是為了方便使用,方便尋找,方便歸類,方便處理,方便....................., 即食麵。 靠,即食麵是吃的好不好,樓主是不是傻了啊。
終於瞭解封裝了,學會了封裝之後,你的project裡面終於發現了好好好多的class。 class設計的好不好,就看對封裝的理解啦。
哥要睡覺啦,改天再繼續吧。。。。。(未完待續)