这个说实话挺绕人的,需要多次揣摩
概述
面向过程的思路就是按照步骤,如开车的步骤:
发动
挂挡
踩油门
启动
这种思路面对复杂的问题不好解决,因此引入面向对象的编程思路
面向对象的思路就是讲复杂问题拆成简单的小模块,这种思路更接近人类的思维
如何实现
抽象
找出各个事物的共同特征(本质特征),如苹果,香蕉,葡萄等统称水果
抽象:就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节
抽象包括两个方面:过程抽象和数据抽象。???
过程抽象(针对对象的 行为特征):把一个系统按功能划分成若干个子系统,进行"自顶向下逐步求精"的程序设计 ,如坤坤会唱跳rap篮球
数据抽象(针对对象的 属性):以数据为中心,把数据类型和施加在该类型对象上的操作作为一个整体(对象)来进行描述,形成 抽象数据类型(ADT),如坤坤的中分,背带裤...
封装
将数据封装在对象的内部,形成一个独立的单位
注意:对数据的访问只允许使用已经定义好的接口
继承
子类共享父类的方法机制,有单继承和多继承
多态
不同对象收到同一消息会产生不同的结果
术语
类
一组具有一定共性的对象的集合/综合抽象的结果
对象
封装的数据
属性
说白了就是数据
消息
比如传入一个函数的数据,add(a,b)这里a,b就能叫做消息
方法(在cpp称为也成员函数)
就差不多指的是一个函数里面的内容(代码)
重载
包括函数重载和运算符重载
相同名字的函数或运算符在不同场合表现出不同的行为???