白话文理解--面向对象&&面向过程

我对面向过程与面向对象的理解。。有错误请大佬指出

面向过程

举例子:我没钱了,需要到银行取,从家到银行需要做几路公交车,需要在哪个公交站牌换程,到了银行需要找到前台小姐姐说取多少钱。。。。。

javaScript代码举例子

问题:在一个dom树中 需要向body中添加动态的div标签,需要对div标签内容进行添加。之后发现不满意再重新修改

  • 首先想到的就是创建div标签var div = document.createElement('div')
  • 之后开始对div的内容开始添加div.innerHTML = '我是过程中的第二步'
  • 开始将动态的div标签添加到body标签中document.body.append(div)
  • 对内容不满意,需要修改,就要从找到div.innerHTML将内容修改。如果项目中的业务多的时候,都需要修改的时候,你要需要一个一个的找一个一个的修改。是不是很麻烦??? 这就是面向过程编程的缺点:难以维护、也难以复用

面向对象

举例子:我没钱了,首先需要想到的是去银行取钱或者找朋友借钱。去银行取钱或者找朋友借钱的中间过程就不需要考虑了。。。这就是面向对象思想
java代码举例子
在拿到一个业务后,不要急着完成这个业务,而是先根据这个业务抽象出来 业务中的实体类,然后让这些实体类来完成这些业务的动作。所以优点是:可复用性

面向对象的三大特征

  1. 面向对象-封装

    • 封装让细节隐藏,让人更好地关注应用
    • 封装可以实现该公开的公开,该隐藏的隐藏
    • 通过访问修饰符实现 public、private、protected、(friendly)默认
      • public:公开,都可以访问
      • private:私有,只可在类内访问,外部不可访问
      • protected:受保护的,可被子类和同一个包里的其他类访问
      • 默认friendly:同一个包里的其它类可以访问
    • 概念:原则是属性和方法能私有的尽量私有
  2. 面向对象-继承

    • java.lang 包中的类是默认import到类中的
    • Object类 java.lang.Object
      • 所有类的超类(superclass)
      • 如果一个类没有显示使用extends继承某个类,则自动继承自Object类
    • super
      • super:代表父类
      • 调用父类方法:super(方法)
      • super()总是引用直接父类的构造方法(不写也会自动添加)
    • 继承注意事项
      • 在子类中不能直接访问父类中的私有成员
      • 子类和父类之间应该有"IS-A"关系
      • 不要滥用继承,只有在分类学上有意义时,才应该使用继承类
      • 子类具有扩展父类的责任
      • 继承的目的就是为了代码复用
  3. 面型对象-多态

    • 多种形态,就是类中的方法,根据调用者的不同,能产生不同的行为

    • 方法重载(条件)

      • 参数的个数不同
      • 参数的类型不同
      • 不同类型参数的顺序不同
      • 但是返回值的不同不能造成方法重载
    • 方法重写

      • 是在子类重新书写父类中的方法的一种现象
      • 在子类中可以通过super,显示的调用父类中这个方法的实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值