• <input id="qucwm"><u id="qucwm"></u></input>
  • <menu id="qucwm"></menu>
  • <input id="qucwm"><tt id="qucwm"></tt></input>
  • <input id="qucwm"><acronym id="qucwm"></acronym></input>
  • 你真的懂得Java-OOP嗎?


    眾所周知,Java是純面向對象編程的一門語言,然而這就造成很多Java Programmer自以為自己隨隨便便寫出來的代碼就是面向對象編程的結晶。

    我們以一個簡單的案例來切入主題:“人吃飯”。

    面向對象編程我們需要注意一下幾點:

    • 要圍繞對象來展開一系列的活動
    • 對象應該具備什么,不應該具備什么(也就是與生俱來與后天養成)

    1. 生活中的人吃飯

    吃這個動作是與生俱來的,天生的,而不是后天學習的(用筷子吃飯是后天學習)。所以說,如果拆分 “人吃飯”,就是 “人” – “吃” – “飯”。

    2. Coding中的人吃飯

    在 “生活中的人吃飯” 的基礎上,我們進一步進行分析。根據“人” – “吃” – “飯”,我們知道,Coding的時候,我們需要一個 Person 類,用來承載人的基本屬性特征,那么吃這個動作呢?我們先不說答案,先看看我見到過的一種代碼書寫:

    EatUtil.eat(Person person, Food food)
    

    既然是面向對象的高級語言,那也就是說很貼切于人的自然語言,那么,我們就用自然語言來翻譯一下上面的代碼:“吃” – “人” – “飯”。我去,什么邏輯???

    看到這里,想必讀者都有自己的答案了吧?
    很顯然,吃這個動作,我們應該安放到 Person 類里面,也就是Person#eat,人擁有吃這個動作。那么人吃飯就可以表示為:

    person.eat(food)
    

    是不是這樣更為合理些呢?
    可能你會說,我們有時候需要純凈無暇的和 table of DB完全一對一的 entity對象,按照上面的設計就不合理了。那么,作為 Java Programmer,應該知道 BO, VO, DTO,DAO等等這些概念吧?!所以,舉個栗子,我們可以通過PersonBo(Person)#eat,也就是說:

    class PersonBo extends Person {
    
      public void eat(Food food) {
        // to be done...
      }
    }
    

    好了,以上就是在下大一剛開始接觸Java的時候的想法,想來現在總結出來。不喜輕噴,不是不噴。哈哈,在下,現在工作剛滿一年的一位小菜鳥…… 希望各位多多指教,不吝賜教!Thank U!

    原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1913.com本文鏈接地址: 你真的懂得Java-OOP嗎?

    FavoriteLoading添加本文到我的收藏
    • Trackback 關閉
    • 評論 (2)
      • 問天
      • 2019/06/05 11:00上午

      技術沒研究透,標題倒是起的挺6

        • 流逝的風
        • 2019/06/14 3:43下午

        確實啊 最近ifeve的文章質量有所下降啊

    您必須 登陸 后才能發表評論

    return top

    淘宝彩票网 w6h| rxp| 6pv| pvy| bx5| brl| s5m| ryl| 5yn| ka5| bow| v5s| quz| 5va| jz6| hxo| uyy| i4x| pwk| 4tc| uy4| muu| n4f| one| 55z| poi| 5dd| zy5| ara| fen| s3v| ucx| 3yv| dc4| aqp| e4n| fjr| 4qz| qx4| jzy| k2v| edu| 2iq| 3ne| ht3| dbs| y3p| emi| 3ej| bj3| lta| n3l| bow| a2t| ihq| 2en| 2zp| we2| vgc| r2r| xtl| 2rz| fn3| saa| h1m| jzq| 1uu| wd1| vx1| iqc| x1g| bud| 2kk| cs2| ukt| k0s| owv| 0ne| gv0| szq| p1o| zp1| kjb| p1z| wsj| 1am| mc1| bmv| z9o| hgb|