区别于面向过程:
面向过程是以函数为基础,完成各种操作,强调的是过程,而面向对象是以对象为基础,强调的是对象。
比如说把大象装进冰箱分为几步,宋丹丹是这样说的:三步呗,
第一步:打开冰箱门,
第二步:把大象装进去,
第三步:关上冰箱门。
其中“打开”“存储”“关上”都是功能行为,在代码中的直观体现就是函数或者方法,这就是一种面向过程的以功能行为为主体的思想体现。
而用面向对象的思想来分析则步骤如下:
第一步:冰箱打开,
第二步:冰箱存储,
第三步:冰箱关闭。
我们可以看到,所有的操作都是以“冰箱”为主体,把功能封装进冰箱(对象)。也就是说,冰箱自己已经具备了“打开”、“存储”、“关上”的行为功能,我们只需要让冰箱执行它具备的功能就可以了。
举一个生活中对象的例子:例如手机就是一个对象,手机拥有多种特性,如手机有高度、宽度、厚度、颜色、重量等特性,这些特性被称为对象的属性。同时手机还有很多功能,如手机可以听音乐、打电话、发信息、看电影等工作功能,这些功能被称为对象的方法。
特点:
1. 是一种更符合人们思考习惯的思想 (基于这点,还没有想太明白)
2. 可以将复杂的事情简单化
3. 将程序员从执行者转换成了指挥者。
开发过程:
不断的创建对象,使用对象,指挥对象做事情。
设计过程:
就是在管理和维护对象之间的关系。运用设计模式或者对象之间的其它联系,使对象能够紧密的关联起来,更加高效的使用对象。
如何使一个程序能够面向对象:
1. 分析该系统中包含哪些对象?
2. 明确每个对象可以做什么?
3. 明确每个对象间的关系。
特征:
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
参见《面向对象的三大特征——封装、继承、多态》
在学习面向对象时,如果能够领会这些比较基础的知识,就能够驾轻就熟的来面向对象了。做了个导图如下。
|
|