當前位置:
首頁 > 最新 > 談談面向對象

談談面向對象

01

對象

英語:Object-oriented programming,縮寫:OOP;

我們開發的程序是給用戶使用的,而我們的程序是使用對象來完成產生的。對象可以看成是對問題的描述的一種解決方案,它與問題空間之間一一映射。也就是將問題抽取成為對象集合

在java中以class關鍵字來定義類的對象,類包含了元素和功能,是一種引用類型,和Int、Float等類型是一樣的道理,只不過Int、Float等這些基本類型是java內置了的,所以我們可以拿來即用,而我們自定義的對象需要我們進行實例化後使用。

02

服務提供者

我們可以將對象看作服務提供者,比如手機這個對象,我們可以用它來聊天,打開閃光燈,砸核桃等。

當每個對象都有各自獨特的服務的時候,我們在使用的時候就很方便高效了,我們知道要實現什麼功能,就拿什麼對象來使用,如果我們對多個對象的各個方面都「組合」的很好的話,那麼對代碼來說是高內聚的,我們都約定俗成開發程序高內聚是我們追求你之一。

03

封裝

假設在合作開發的時候,有人負責創建類來提供服務,有人收集使用類來快速實現程序開發,我們把第一種人暫且叫類(服務)創建者,第二種人叫做使用服務(類)者。

那麼在這種情況下,創建者對自己的類只需要暴露必需的功能給使用者就可以了,使用者無需關心創建者是怎麼樣實現類的細節,拿來用就好了。這樣創建者會對比較「脆弱」的代碼進行封裝,使用者無法觸及,防止使用者隨意修改,減少了bug的產生,還有就是創建者對封裝的這些代碼修改不會對使用者造成影響,比如類創建者在一開始創建類的時候某功能寫的簡單了,後來為了提高性能,那麼修改這部分代碼,實際上對使用者是毫無影響的。

java用private關鍵字來限定只有類創建者和類內部方法可以使用,其它人都無法使用。

如果是使用public修飾的話就相當於完全暴露了,任何人都可以使用。

還有protected是讓繼承的子類可以使用,但是不能使用父類被private修飾的屬性。

默認不指定修飾的時候,同一包下的其它成員都可以訪問。

所以封裝是有必要的,在這種分離的情況下,提高了安全性。

04

複合

一個對象含有另一個對象,這就是組合。 比如手機這個對象含有相機對象,我們創建了相機對象,可以內置於手機對象中,這樣做的好處是使用對象間靈活高效的。

代碼提現:

05

繼承

當你發現對象之間存在諸多相似性的時候,並不需要每個都創建獨立的對象,可以找出他們的相同點作為基類(父類),進而在衍生出差異的類(子類),這樣子父類就包含子類所有共享的行為特性了,子類就以不同的實現方式存在。

關於繼承可以在給新手的一篇超容易理解的java類之間的繼承查看。

06

多態

狗可以稱為動物,貓可以稱為動物。多態在於你可以不在意具體對象類型而使用它們共同的屬性:

代碼提現:

輸出:

在這裡可以看到dog和cat向上轉型為Animal。向上轉型是安全的,向下轉型卻是危險的,例如將Animal轉為它的子類,因為此刻Animal既不知道是Dog還是Cat,所以向下轉型還需要專門指定對象,即強制轉換

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 肯定會 的精彩文章:

TAG:肯定會 |