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