面向对象的概述

来源:互联网 发布:唐望 知乎 编辑:程序博客网 时间:2024/06/06 03:50

什么是面向对象?

面向对象

我们先理解一下面向对象的思想

  • 面向对象是相对于面向过程而已
  • 面向对象和面向过程都是一种思想
  • 面向过程 
    • 强调的是功能行为
  • 面向对象 
    • 讲功能封装进对象,强调具备了功能的对象
  • 面向对象是基于面向过程的

这么说可能有点笼统,我们举个例子来说明

还记得那个故事吗,把大象放进冰箱里,这里分几步?

  • 第一步:打开冰箱门
  • 第二步:把大象放进去
  • 第三步:关闭冰箱门

这个行为艺术,叫做过程,这个行为过程,我很强调过程,不管是大象还是小象,无所谓,打开,放进去,关上,这就是面向过程

而面向对象 
只需要我们封装这个冰箱,那么那就有打开,存储,和关闭的功能,那么我们作用的就是冰箱这个对象了,我们直接面向他

这样说,是不是有点空洞?


就拿买电脑来说吧,首先,你不懂电脑,你去电脑城买电脑,和大象装冰箱里一样,是什么步骤?咨询 砍价 ,谈妥了就那电脑走人,对吧,这就是面向过程的思想,而面向对象是:你有一个哥们,他懂电脑,什么都会,你只要带他去,就行,你这个哥们就是对象,在JAVA中,我们就是操作一个对象去完成各种各样的操作的,这就是面向对象的思想


作为比喻:你想个找女
朋友
,房间有100个人,排成一队。里面有男人也有女人。你的条件是20-25岁,没结婚的女人就行。面向对象,就是你可以随时说,男的先出去,房子里就只有女人了,20-25岁的留下。你就找出所有100人中全部符合条件的人。面向过程,就是你得一个一个的问,你是男人还是女人,你几岁了,不能跳过。大体上就是这样。面向对象,就是把同类问题打包了,随时调用面向过程,就是一步步执行,不能打乱执行先后。

         从学习VB开始,就一直在说面向对象,面向对象。。!@¥@#%¥@!。。说了多少遍,在软工之前,也一直没有接触到一个明确的定义。

       在软件工程中,CoadYourdon给出了一个定义:

面向对象=对象++继承+通信

如果一个软件系统是使用这样4个概念设计和实现的,则我们认为这个软件系统是面向对象的。


如图,对象a为类a的一个实例,类a没有方法b,但是如果某种程序设计语言支持多重继承的话,那么,对象a可以从对象b继承方法b,从而简化了代码。另外,对象和对象之间还存在着通信,消息是一个对象与另一个对象的通信单元。

对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。面向对象编程将数据和方法封装在一个整体(类)里面,通过定义一个类,将一系列具有相同抽象概念的事物的共同特性概括起来,并在类中定义对数据的处理方法。       
0 0