面向编程:
我们在解决问题中,注重的是解决问题的每一个步骤和过程。
面向对象:
面向对象基本概念:
对象:万物皆对象,对象是由静态的属性和动态的方法组成
类:一组具有相同属性和行为对象的抽象事物
消息:像某个对象发送请求。
方法:对象对收到请求的相应。
注重的是在问题中,涉及到哪些对象,以及对象之间有哪些关系.
|
核心思想 |
缺点 |
算法 |
面向编程 |
自顶向下,逐步求精,也就把功能分解
设计数据结构
编写基础代码,基于数据结构操作 |
一旦数据结构发生修改,必须就要修改操作的代码
可重用性差
可维护性差,维护的成本高 |
程序 = 数据结构+算法 |
|
|
相对的优点 |
|
面向对象 |
分解数据
数据,和操作数据是一整体 |
数据修改,只涉及这对该数据的操作(封装)
可重用性好(继承)
可维护性高,维护的成本低 |
程序 = 对象+消息 |
万事万物皆对象,对象是由静态的属性和动态的方法来组成的。
面向对象的三大基本特征:
封装:
存在一个边界,边界之内的细节隐藏起来,只留下对外的接口(如,笔记本,手机,饮水机)
为什么使用封装(1)易用,简单。(2)安全 (3)易维护
继承:
允许后代直接使用先辈的所有属性和行为。
为什么使用继承:更好的实现了代码的重用
多态:
不同的对象,接收到相同的消息,产生的响应不同。
总结:
面向对象是一种很自然,朴素的方法,来源于生活,