黑马程序员技术交流社区

标题: 再谈面向对象 [打印本页]

作者: shw1072047958    时间: 2016-6-9 22:34
标题: 再谈面向对象
区别于面向过程:

         面向过程是以函数为基础,完成各种操作,强调的是过程,而面向对象是以对象为基础,强调的是对象。

         比如说把大象装进冰箱分为几步,宋丹丹是这样说的:三步呗,

         第一步:打开冰箱门,

         第二步:把大象装进去,

         第三步:关上冰箱门。

         其中“打开”“存储”“关上”都是功能行为,在代码中的直观体现就是函数或者方法,这就是一种面向过程的以功能行为为主体的思想体现。

         而用面向对象的思想来分析则步骤如下:

         第一步:冰箱打开,

         第二步:冰箱存储,

         第三步:冰箱关闭。

        我们可以看到,所有的操作都是以“冰箱”为主体,把功能封装进冰箱(对象)。也就是说,冰箱自己已经具备了“打开”、“存储”、“关上”的行为功能,我们只需要让冰箱执行它具备的功能就可以了。

        举一个生活中对象的例子:例如手机就是一个对象,手机拥有多种特性,如手机有高度、宽度、厚度、颜色、重量等特性,这些特性被称为对象的属性。同时手机还有很多功能,如手机可以听音乐、打电话、发信息、看电影等工作功能,这些功能被称为对象的方法。

特点:

        1.      是一种更符合人们思考习惯的思想 (基于这点,还没有想太明白)

        2.      可以将复杂的事情简单化

        3.      将程序员从执行者转换成了指挥者。

开发过程:

        不断的创建对象,使用对象,指挥对象做事情。

设计过程:

        就是在管理和维护对象之间的关系。运用设计模式或者对象之间的其它联系,使对象能够紧密的关联起来,更加高效的使用对象。

        如何使一个程序能够面向对象:

        1.  分析该系统中包含哪些对象?

        2.  明确每个对象可以做什么?

        3.  明确每个对象间的关系。

特征:

        封装(encapsulation)

        继承(inheritance)

        多态(polymorphism)

        参见《面向对象的三大特征——封装、继承、多态》

在学习面向对象时,如果能够领会这些比较基础的知识,就能够驾轻就熟的来面向对象了。做了个导图如下。



作者: 不忘初心2016    时间: 2016-6-10 16:52
不错,大致的思路能讲出来
作者: 橘子哥    时间: 2016-6-10 17:33
真心讲解的很棒啊,让我都似乎一下子明白了, 哈哈,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2