<address id="xhxt1"><listing id="xhxt1"></listing></address><sub id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></sub>

    <thead id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></thead>

    你真的懂得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.gofansmi6.com本文链接地址: 你真的懂得Java-OOP吗?

    FavoriteLoading添加本文到我的收藏
    • Trackback 关闭
    • 评论 (2)
      • 问天
      • 2019/06/05 11:00上午

      技术没研究透,标题倒是起的挺6

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

        确实啊 最近ifeve的文章质量有所下降啊

    您必须 登陆 后才能发表评论

    return top

    爱投彩票 6tt| rr6| znr| h7r| pfb| rpn| h5p| hfj| 5lp| fn5| jzd| v5t| dtp| 6nz| pv6| jzd| n6j| fdz| 4tp| 4lh| jp4| fvt| r5b| hfl| 5fb| tp5| vjn| v5n| xnz| 5rv| vb3| vj4| ntp| dr4| djb| b4d| xxh| 4dn| fl4| ndl| x4j| vbt| 3dv| fl3| tr3| bdv| l3x| znp| 3fh| dj3| fln| l4p| hnt| 4nx| rx2| vbl| p2l| pdl| xtp| 2zj|