`
iloveflower
  • 浏览: 77055 次
社区版块
存档分类
最新评论
  • iloveflower: 呵呵。好好学习。。。。。。。。。。。。
    java 读书
  • Eric.Yan: 看了一点,不过是电子版的……你这一说到提醒我了,还要继续学习哈 ...
    java 读书

用例子说明面向对象和面向过程的区别

    博客分类:
  • OO
 
阅读更多
  java是一门面向对象的语言,那对面向对象和面向过程不是很清楚的请看看下面的内容,说不定对你有帮助:

    面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

    例如五子棋,面向过程的设计思路就是首先分析问题的步骤:

   1、开始游戏,

    2、黑子先走,

    3、绘制画面,

    4、判断输赢,

    5、轮到白子,

    6、绘制画面,

    7、判断输赢,

    8、返回步骤2,

    9、输出最后结果。

    把上面每个步骤用分别的函数来实现,问题就解决了。
 
    而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:

    1、黑白双方,这两方的行为是一模一样的,

    2、棋盘系统,负责绘制画面,

    3、规则系统,负责判定诸如犯规、输赢等。
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

   可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

   功能上的统一保证了面向对象设计的可扩展性。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。

   到这里就可以很明显的看出面向对象和面向过程的区别所在了。
分享到:
评论

相关推荐

    面向过程与面向对象区别

    面向过程与面向对象区别面向过程与面向对象区别

    面向对象的程序设计语言与面向过程的程序设计语言.docx

    二者用最简单的例子来说 比如说:我吃饭 面向过程:着重在吃的过程,要具体描述吃的没一个步骤,比如夹米饭,张嘴,我进行咀嚼等之类的过程 面向对象:是先将我封装成一个类,米饭封装成一个类,然后把吃饭进行封装...

    面向对象软件工程

    《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介  第一章 面向对象软件工程的范畴  第二章 ...

    JAVA面向对象编程_孙卫琴2.pdf

    本章首先简要介绍了结构化的软件开发过程,然后介绍面向对象的软件开发过程,对面向对象的一些核心思想和概念做了阐述。本章列举了不少形象的例子,来帮助读者理解面向对象的开发思想,并且以一个画板Panel软件系统...

    C#面向对象程序设计教材例子

    C#面向对象程序设计教材例子 这个都是本人收藏了3年的资源 现放出 都是总结了很多系统 软件项目实施过程中的经验的 慢慢积累的

    java高级编程,java面向对象,java基础.rar

    面向对象是相对于面向过程来讲的,指的是把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事务的自然运行模式。 面向对象到面向过程,是程序员思想上从执行者到指挥者的转变。 2.举个...

    面向对象的设计过程(有案例)

    IBM提供的面向过程分析设计实例,简单明了的设计方法过程描述,非常实用。

    写给大家看的面向对象编程书(第3版).[美]Matt Weisfeld(带详细书签).pdf

    此外,本书还讨论了各种与面向对象概念密切相关的应用主题,包括XML、UML建模语言、持久存储、分布式计算和客户/服务器技术等。  本书内容精炼,示例简单明了,适合各层次面向对象开发人员阅读,也是高校相关专业...

    面向对象与UML资料

    面向对象与UML 第一部分 软件开发活动 7 第一章 结构化的分析与设计 8 第一节 模型图 8 业务流程图 8 数据流图 11 功能结构图 12 功能树 13 网络结构图 14 程序流程图 15 第二节 需求分析 15 需求分析的任务 15 需求...

    刘振安-面向对象程序设计 C++

    本章将通过一个实际的例子,介绍C++如何兼容面向过程设计、它的基本程序结构及其在函数设计上与C语言的异同。然后给出使用函数重载的实例,以便为从结构引入类的知识打下基础。最后介绍C++语言的动态内存分配、引用...

    建模、面向对象(OO)和UML

    第二部分通过比较面向过程和面向对象两种思想来说明OO建模的优点。 第三部分从OO思想的角度说明面向对象的基本概念,以及为什么会有这些概念。 第四部分阐明了为什么需要UML、UML带来的什么、UML的发展历史和组成。

    面向对象技术及uml建模实例

    面向对象技术及uml建模,实例讲解类图,顺序图,活动图,状态图等uml建模过程,内容丰富,学习简单

    Python基础教程详解(第四十九课)-面向对象(3).doc

    Python基础教程详解 【第49课】 面向对象(3) 面向对象是比较复杂的概念,初学很难理解。我曾经对人夸张地说,面向对象是颠覆你 编程三观的东西,得花上不少时间才能搞清楚。我自己当年初学Java的时候,也是折腾 了...

    java面向对象程序设计.pptx

    4.1 面向对象程序设计的思想 4.1.1 OOP思想 4.1.2 用类实现抽象数据类型:时钟类 4.1.3 类成员:构造函数、方法和域 第2页/共37页 java面向对象程序设计全文共37页,当前为第2页。 4.1.1 OOP思想 面向对象编程技术 ...

    关于C语言和C++的详细解释.rar

    我们都知道C语言是面向过程语言,而C++是面向对象语言,说C语言和C++的区别和联系,也就是在比较面向过程和面向对象的区别。 1、面向过程和面向对象的区别 面向过程:面向过程编程就是分析出解决问题的步骤,然后...

    PHP 面向对象技术(全面讲解).txt

    电脑教室,那么我们是做程序,这和面向对象有什么关系呢?开发一个系统程序和建一个电脑教室 类似,你把每个独立的功能模块抽象成类,形成对象,由多个对象组成这个系统,这些对象之间都 能够接收信息、处理数据和向...

    VB.NET Step By Step系列课程(5):VB.NET中的面向对象编程 (Level 200)

    在系列课程上一讲的基础上,本课程以用VB.NET2005开发具体应用为例子,详细介绍在VB.NET环境中如何运用面向对象的方法来组织工程,编写程序。所涉及的内容包括:定义和使用类,创建对象和实例,运用继承和接口等。...

    【Python入门自学笔记专辑】——面向对象编程

    文章目录前言面向对象:举个最简单点的例子来区分 面向过程和面向对象:面向过程:面向对象的三大特性:类和对象定义类创建和使用对象构造方法 【Python入门自学笔记专辑】——面向对象编程 前言 ​ 面相对象是...

    c#中的面向对象继承

    在.net平台上实施面向对象的继承 老师讲的很详细 例子觉得很好很形象

Global site tag (gtag.js) - Google Analytics