程序猿必看 | JAVA語(yǔ)言編程思想
在我們所學(xué)的預(yù)言中,有些是面向過(guò)程的,分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。我們所熟悉的C便是典型面向過(guò)程的語(yǔ)言。而此外,還有一種是面向?qū)ο蟮模?/span>把構(gòu)成問(wèn)題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問(wèn)題的步驟中的行為。JAVA作為面向?qū)ο笳Z(yǔ)言中的代表,有哪些編程思想呢?
可封裝
讓抽象的事物保護(hù)自身的狀態(tài),防止非其他事物對(duì)其進(jìn)行錯(cuò)誤的狀態(tài)改變操作。我們抽象完一個(gè)事物后,可能在特定的條件下,其本身的狀態(tài)需要改變,但是這個(gè)改變并允許其他的事物來(lái)進(jìn)行,這樣的改變只允許這個(gè)事物認(rèn)同的操作域來(lái)進(jìn)行,可以是該事物本身,也可以是它信任的其他事物。這樣我們就能對(duì)我們抽象完的每個(gè)事物進(jìn)行自身數(shù)據(jù)的保護(hù)
可繼承
讓抽象出來(lái)的事物具有本應(yīng)該具有的聯(lián)系。我們能用類來(lái)描敘一個(gè)抽象的事物,同時(shí)能用對(duì)象來(lái)描敘具體的事物,但是這些事物都是獨(dú)立的,彼此之間沒(méi)有應(yīng)該有的聯(lián)系,這樣的孤立設(shè)計(jì)并不符合現(xiàn)實(shí)邏輯,讓事物之間的聯(lián)系得到描敘,我們就需要繼承,例如:發(fā)明自行車的人并不是一開始就發(fā)明了多人自行車,這些都是從雙輪自行車演變和發(fā)展而來(lái),但是他們都有共同的特點(diǎn),有輪子,有車架子,等等。讓我們用繼承的關(guān)系把這兩個(gè)現(xiàn)實(shí)的抽象聯(lián)系起來(lái),這樣我們就能設(shè)計(jì)出不孤立的類,而是和其他類有聯(lián)系的類。
多態(tài)
用一種解決方案來(lái)解決對(duì)一類問(wèn)題,對(duì)于不同的事物解決途徑和結(jié)果不同。在C++中實(shí)現(xiàn)多態(tài)性有三種方法,分別是:虛函數(shù),函數(shù)重載和運(yùn)算符重載。這三種方法大家都可以看到我們解決問(wèn)題的初衷是一樣的,都是利用同名函數(shù),同名的運(yùn)算符號(hào),這抽象出來(lái)也就是解決問(wèn)題的方法,但是對(duì)于不同的事物的反應(yīng)卻是不同的,例如:當(dāng)用一個(gè)getPadNumber()方法來(lái)得到普通自行車和雙人自行車的坐墊數(shù)量的時(shí)候,返回的結(jié)果是一個(gè)和兩個(gè),這就是具體的事物返回的結(jié)果不同。
- 贊