面向编程:我们在解决问题中,注重的是解决问题的每一个步骤和过程。
面向对象:注重的是在问题上,涉及到哪些对象,以及对象之间有哪些关系。
面向编程是 方法的重用性
面向对象是 类的重用性
| 核心思想 | 缺点 | 算法 |
面向编程 | 自上向下,逐步求精,也就是把功能分解。
设计数据结构:编写基础代码,基于数据结构操作
| 一旦数据结构发生修改,必须就要修改操作的代码
可重用性差, 可维护性差,维护的成本高 | 程序=数据结构+算法 |
相对优点 |
| ||
面向对象 | 分解数据
数据,和操作数据是一个整体 | 数据修改,只涉及这对该数据的操作。(封装) 可重用性好(继承) 可维护性好,维护的成本低。 | 程序=对象+消息 |
当提到杯子的时候,我们脑子里可能会有一个关于杯子的一个概念,这个杯子有颜色,大小,等属性,其实这个概念就是一个类。它具有一些属性和方法。
万事万物皆对象,对象是由静态的属性和动态的方法来组成的。
类:具有一组相同属性和行为的对象的抽象。
消息:对象之间的通信和响应。
方法的重载和继承体现了多态。
类的组成:成员变量和成员方法。