美文网首页
面向对象(一)

面向对象(一)

作者: 王欢乐whl | 来源:发表于2018-11-22 13:41 被阅读0次

    基础

    一.面向对象程序设计的特点

    1.封装(encapsulation)
    • 属性私有:对外提供公有的getter/setter
    • public:公有;private:私有;protected:受保护的
    • 例如:树类(封装了它的价格,名字,给其提供了getter/setter,让其共有化)
      。 封装


      封装.png

      。提供getter/setter


      提供.png
    2.继承(succession)
    3.多态(polymorphic)

    二.类之间的关系

    1.纵向关系:比较清晰
    • 继承:父子关系——extends
    • 实现:类对接口的实现——implements
    2.横向关系:取决于语义
    • 依赖
      。双方的地位往往是独立平等的(地位)
      。 是偶尔的、临时性的、不频繁的(依赖程度)
      代码层面的表现形式而言,往往是局部的变量
      。类B以参数的形式传入类A的方法。
      。类B以局部变量的形式存在于类A的方法中。
      。类A调用类B的静态方法。
    • 工人和出租车
    • 关联
      。双方的地位往往是独立的、平等的(地位)
      。是长期的、稳定的、频繁的(依赖程度)
      代码层面的表现形式而言,关联往往以全局属性的形式存在
    • 程序员和电脑
    • 聚合
      。双方的地位不是平等的,是整体和部分之间的关系(地位)
      是长期的、稳定的、频繁的,这种关系比关联更强,以至于在形式上出现了整体和部分之间的关系。整体和部分都有自己的生命周期,一方的消失另外一方不会跟着消失。(依赖程度)
      。代码层面的表现形式而言可参考关联
    • 公司和员工
    • 组合
      。双方的地位不是平等的,是整体和部分之间的关系(地位)
      比聚合更强,部分的生命周期取决于整体,部分随着整体的消失而消失(依赖程度)
      代码层面的表现形式而言可参考关联
      区分是聚合还是组合的核心点是在生命周期
    • 小鸟和眼睛

    大家的理解

    微信图片_20181122134039.jpg

    相关文章

      网友评论

          本文标题:面向对象(一)

          本文链接:https://www.haomeiwen.com/subject/olihqqtx.html