大多数高级语言都有这个东西,并且原理都是差不多的
什么是面向对象:
面向对象是一种编程思想,是前辈们总结出来的经验,指导程序员如何写出更好的程序
核心是对象,程序就是一系列对象的集合。
它具有:灵活性,扩展性,重用性
回顾面向过程编程:
将问题流程化,从而简单化,(添加功能太过麻烦)
优点:逻辑清晰,复杂问题简单化,流程化
缺点:扩展性差,可维护性差
面向对象:当老板,让对象完成功能
面向过程:自己做,自己去写功能
案例1:把大象装进不冰箱:
面向对象
找个具备装大象技能的对象,让它自己把东西放进冰箱
在面向对象中的程序员角度发生了改变,从具体的操作者变成了指挥者;
强调:对象不是凭空产生的,需要我们自己去设计
面向过程
1:打开冰箱
2:放进去
3:关上冰箱
案例2:西天取经
面向对象:
如来有一堆书要传出去,他自己没有干,而是找了五个对象去帮他干,
如来只需要负责控制调度对象即可
如果某个对象发生变化(猴王回老家),也不会太影响其他的对象,其他对象还是该干嘛干嘛
面向对象
面向对象的三大优点:
1:扩展性
2:灵活性
3:重用性
需求改变,模板也能直接改变
缺点:
1:程序复杂度提高了,
2:无法准确预知结果
面向过程
将问题流程化,从而简单化,(添加功能太过麻烦)
优点:逻辑清晰,复杂问题简单化,流程化
缺点:扩展性差,可维护性差
使用场景:系统内核,
使用场景:
面向对象
对扩展性要求较高的程序
(qq,微信)
特征:直接面向客户(普通用户)
面向过程
有的程序面向特定用户。扩展性不高
(操作系统)