有人告訴我那裏遍地都是對象——咱們把全部的程序代碼放在main()裏面,事實上,那根本就不是面向對象的作法,在Java的面向對象中,咱們也會看到類和對象的不一樣,以及對象是如何讓你的生活更美好(至少程序設計工做的部分會更美好,但對因而否可以受到異性的青睞就不必定了)。程序員
如下咱們使用一個案例來舉例說明面向對象的編程方法,案例的要求是:在圖形接口畫出四方形、圓形與三角形。當用戶點選圖形時,圖形須要順時鐘轉360°並依據形狀的不一樣播放不一樣的AIF音效文件。(不錯,這是經典的椅子大戰)編程
那麼做爲程序員的你,會如何實現呢?請花30秒小小思考一下。segmentfault
在面向對象的編程中,咱們須要定義三個類分別是Square、Circle、Triangle表明四方形、圓形與三角形,且他們都要顯示對應的rotate()、playSound()方法,這樣一看好像要寫不少重複的代碼。可是!spa
如今業務發生了變化,咱們須要加一個阿米巴原蟲形狀,用戶點擊時旋轉並播放.hif聲音文件。且旋轉是以右側的點爲中心,不是圖形的中心設計
那麼咱們仍是能接受的,多加一個Amoeba類,實現對應的旋轉和播放音頻的方法,這裏咱們徹底不用理會以前的三個實現類,他們都是一一獨立的。對象
可是咱們會發現四個類都有共同的部分,那麼咱們能夠提取一個父類Shape,接着讓四個子類去繼承Shape。繼承
面向對象,讓對象自己只專一於本身的實現,若是有相同的實現就進行提取,它幫助咱們用更天然的方法設計,加入新功能時不會搞亂已經寫好的程序代碼,且類能夠重複運用在別的應用程序中,當寫一個新的類時,可使該類有足夠的擴展性,以便之後用到。接口
本文已轉載我的技術公衆號:UncleCatMySelf
歡迎留言討論與點贊
上一篇推薦:【Java貓說】編譯器與虛擬機哪一個重要?
下一篇推薦:【Java貓說】類與對象的那些事圖片