? ? ? ?面向?qū)ο笫浅绦騿T在編程時(shí)比較難以理解的問(wèn)題牲证,不同于面向過(guò)程研叫,只需按照程序的要求編寫(xiě)一個(gè)個(gè)函數(shù)锤窑,實(shí)現(xiàn)各個(gè)步驟,來(lái)實(shí)現(xiàn)功能的要求嚷炉。而面向?qū)ο笮枰覀兏鶕?jù)程序的要求設(shè)立對(duì)象渊啰。這個(gè)建立對(duì)象的分析過(guò)程是比較困難的。
? ? ? ? 以往我們編寫(xiě)程序都是按照面向過(guò)程的思維模式來(lái)進(jìn)行的申屹,我們看待問(wèn)題是這一步應(yīng)該做什么绘证,下一步應(yīng)該做什么,然后編寫(xiě)成不同的函數(shù)哗讥,來(lái)共同實(shí)現(xiàn)這個(gè)功能嚷那。這對(duì)于簡(jiǎn)單的程序只有幾百行來(lái)說(shuō)是非常有效的方法,但是對(duì)于大的程序來(lái)說(shuō)杆煞,這種方法就非常不實(shí)用了魏宽,如果程序非常的龐大腐泻,幾萬(wàn)行甚至更多,我們要考慮的事情就非常多了湖员,如果這樣編寫(xiě)容易造成結(jié)構(gòu)混亂贫悄,使得程序的bug非常多瑞驱。也不利于程序的維護(hù)和修改娘摔,如果客戶提出修改某些功能,甚至增加功能的話唤反,我們?cè)鹊某绦蚝芸赡芫筒荒苡昧说仕拢仨氃俅尉帉?xiě)。因?yàn)槊嫦蜻^(guò)程的程序大多都是通過(guò)函數(shù)之間的傳值來(lái)實(shí)現(xiàn)信息的交流的彤侍,如果你修改某一函數(shù)很可能導(dǎo)致另外一個(gè)函數(shù)出現(xiàn)bug肠缨。面向過(guò)程的程序都是各個(gè)函數(shù)之間緊密連接的,一改可能會(huì)改一大片盏阶。而且容易出現(xiàn)某個(gè)函數(shù)的值發(fā)生錯(cuò)誤晒奕,導(dǎo)致整個(gè)程序運(yùn)行錯(cuò)誤。
? ? ? ? 而面向?qū)ο缶捅容^符合人類的思維習(xí)慣了名斟,對(duì)于一個(gè)問(wèn)題脑慧,我們首先想到的不是,怎樣解決它砰盐,如何解決它闷袒,而是這個(gè)問(wèn)題牽扯到的對(duì)象都有哪些,它們做了什么岩梳。列舉一個(gè)經(jīng)典的問(wèn)題囊骤,把大象裝進(jìn)冰箱分為幾步,如果按照面向過(guò)程的思維來(lái)想應(yīng)該是三步冀值,第一步打開(kāi)冰箱門(mén)也物,第二步把大象放進(jìn)冰箱,第三步關(guān)上冰箱門(mén)列疗。這個(gè)過(guò)程就結(jié)束了滑蚯。而對(duì)于面向?qū)ο髞?lái)說(shuō)的話首先我們應(yīng)該分析這個(gè)過(guò)程有哪些對(duì)象來(lái)參與,第一個(gè)應(yīng)該是冰箱作彤,然后是大象膘魄。在這個(gè)過(guò)程中冰箱的行為有打開(kāi)和關(guān)閉,而大象的行為就是進(jìn)入冰箱竭讳。然后我們就可以建立兩個(gè)類创葡,一個(gè)是冰箱一個(gè)是大象。以后如果大象有任何其它的行為比如說(shuō)出去绢慢,睡覺(jué)等就和冰箱沒(méi)有任何的關(guān)系灿渴。
? ? ? ? 對(duì)于面向?qū)ο髞?lái)說(shuō)洛波,把一個(gè)個(gè)行為和屬性相同的對(duì)象抽象成為一個(gè)類,就相當(dāng)于一個(gè)模板骚露。類包括屬性和方法(函數(shù))蹬挤,通過(guò)把屬性私有化,使得外界不能訪問(wèn)和修改里面的屬性棘幸,類和外界的接口就是公有化的函數(shù)焰扳,只有類里面的函數(shù)才能對(duì)類屬性進(jìn)行操作。這就不會(huì)造成類屬性被外界修改误续,對(duì)于其它程序而言這個(gè)類就相當(dāng)于一個(gè)收音機(jī)吨悍,只知道按鍵的功能,而不能了解內(nèi)部的結(jié)構(gòu)蹋嵌。這就體現(xiàn)了類的封裝性育瓜。對(duì)于一個(gè)類來(lái)說(shuō),不能滿足有些對(duì)象的全部行為和屬性栽烂,比如說(shuō)鴨子這個(gè)類的行為不會(huì)說(shuō)人話躏仇,而唐老鴨卻會(huì)說(shuō)人話,它符合鴨這個(gè)類的所有屬性和行為腺办,應(yīng)該屬于鴨這個(gè)類焰手,但它還有鴨這個(gè)類沒(méi)有的行為,所以應(yīng)該在再建一個(gè)類菇晃,這個(gè)類繼承鴨這個(gè)類的全部行為和屬性還有其它的行為册倒。這就是繼承關(guān)系,子類繼承父類的所有屬性和行為之外磺送,還有自己的屬性和行為驻子。對(duì)于代碼功能的更新重用起著非常大的作用。如果要在一個(gè)類的基礎(chǔ)上增加新的方法(行為)和屬性估灿,只需創(chuàng)建一個(gè)新的類繼承于原來(lái)的父類崇呵,再增加新的方法。就可以了馅袁。對(duì)于一個(gè)類甚至多個(gè)繼承類的對(duì)象的同一個(gè)方法來(lái)說(shuō)域慷,因?yàn)閷傩缘牟煌鴮?dǎo)致方法的不同。比如人這個(gè)類汗销,有的人高有的人低犹褒,有的人吃的多有的吃的少,同一個(gè)類的不同對(duì)象中同種方法的不同行為就叫多態(tài)性弛针。?對(duì)象是類的實(shí)例化叠骑,比如人是一個(gè)類,具體的某一個(gè)人張三就是類的實(shí)例化對(duì)象削茁。
? ? ? ? 總的來(lái)說(shuō)宙枷,面向過(guò)程是讓程序之間緊密聯(lián)系在一起的掉房,而面向?qū)ο缶幊淌怯梢粋€(gè)個(gè)類組成的,注重各個(gè)類之間互不相關(guān)的慰丛,除非特殊情況需要傳輸消息卓囚。