1.在我们之前学的C++的内容是以函数为基本单位,一个接一个组织起来,最终成为程序,这叫做面向过程的程序设计;而大多数高级编程语言是利用面向对象的程序设计:以类为基本单位,进行组装成完整的程序。
为什么面向对象应用更广泛,原因就在于面向对象的开发效率更高,组装性更好。
2.那么,对象是什么呢?
对象(object)=数据(数据类型)+行为(函数)
下面通过一个实例来更好理解面向对象的程序设计。
举例:写一个程序描述洗衣机。
思路:功能上:洗衣服
外观:
品牌:
长,宽,高
型号:
伪代码:
(1)面向过程
struct 洗衣机{
int nWidth;
int nHeight;
int mLength;
int nType;
int nBrand;
};//定义洗衣机的数据特征
洗衣机 海尔洗衣机;
void 洗衣服(洗衣机,衣服)
{
}//定义一个洗衣服的函数
洗衣服(海尔洗衣机,脏衣服);
洗衣服(海尔冰箱,脏衣服);
缺点:洗衣服和洗衣机的关联不够强烈。
如果把冰箱写进洗衣服的函数里,也能编译通过,系统不会发现有错,但是这显然在现实中是错误的。
(2)而面向对象的程序设计:
class 洗衣机{
int nWidth;
int nHeight;
int mLength;
int nType;
int nBrand;
void 洗衣服(衣服);
};
洗衣机 海尔洗衣机;
海尔洗衣机.洗衣服(脏衣服);//只有洗衣机才有洗衣服的功能(只要想洗衣服必须先找到洗衣机)
其中洗衣机就是类,海尔冰箱就是对象。
所以,对象是具体的,包括数据类型(属性)和代码类型(函数);而类是抽象的,是对同一类对象的集合。
这里大部分是来源于:https://www.bilibili.com/video/av76448370
如有不妥之处,请多指教。