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

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

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

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

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

   1、开始游戏,

    2、黑子先走,

    3、绘制画面,

    4、判断输赢,

    5、轮到白子,

    6、绘制画面,

    7、判断输赢,

    8、返回步骤2,

    9、输出最后结果。

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

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

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

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

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

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

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

相关推荐

    面向过程与面向对象区别

    面向过程和面向对象是两种不同的软件设计方法,它们之间的区别是非常重要的。在设计软件时,选择合适的方法对于软件的质量和可维护性有着重要影响。 面向过程是一种-old school-的设计方法,它着眼于解决问题的步骤...

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

    面向对象的程序设计语言与面向过程的程序设计语言是两种主要的编程范式,它们各自具有独特的设计理念和方法。在编程领域,理解这两种语言的区别对于编写高效、可维护的代码至关重要。 面向过程的编程(Procedural ...

    面向对象代码例子

    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它基于“对象”的概念,...同时,这也是iOS开发过程中不可或缺的一部分,因为苹果的SDK和API大部分都是基于Objective-C或Swift的面向对象设计。

    面向对象和面向过程的区别,类和对象的概念区别.docx

    面向对象编程(Object-Oriented Programming,OOP)和面向过程编程(Procedural Programming)是两种主要的编程范式,它们在解决问题的方式上有着显著的区别。 面向过程编程是一种自下而上的编程方式,注重的是程序...

    面向对象,简单工厂例子

    面向对象编程中的简单工厂模式是一种创建型设计模式,它提供了一个接口来创建一系列相关或相互依赖的对象,而无需指定它们的具体类。在这个例子中,我们看到一个简单的ASP.NET Web应用程序,该程序使用了简单工厂...

    c++课后例子关于面向对象方面的

    本练习主要涵盖了C++中面向对象的几个关键概念:类(Class)、对象(Object)、封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。 1. **类与对象** 类是面向对象编程的基本单位,它是创建对象...

    转载面向对象的理解

    在软件开发领域,编程范式是组织代码的方式,常见的编程范式包括面向过程编程(Procedural Programming)和面向对象编程(Object-Oriented Programming,简称OOP)。这两种编程范式在解决问题时有着不同的思维方式和...

    js 面向对象实例

    面向对象编程(Object-Oriented Programming,简称OOP)是JavaScript中的核心概念,它允许开发者通过对象来组织和管理代码,提高代码的可重用性和可维护性。本实例将深入探讨JavaScript的面向对象特性,并结合HTML5...

    面向对象实验通过编程和上机实验理解 Java 语言是如何体现面向对象

    总的来说,这个实验旨在通过实践让学习者掌握面向对象编程的基本概念,包括如何定义和使用类,创建和操作对象,以及如何通过成员变量和方法实现数据的封装。同时,通过具体的代码实例,加深对Java语言面向对象特性的...

    《Java面向对象程序设计》例子源代码

    《Java面向对象程序设计》是一本深入探讨Java编程语言中面向对象特性的书籍,由北京邮电出版社出版。这本书的实例源代码包含了丰富的...通过阅读和分析这些例子,你将能够更好地掌握Java的面向对象特性,提升编程能力。

    C#程序例子(面向对象)

    在本资源中,"C#程序例子(面向对象)"是一个专门为初学者设计的C#编程教程,通过一系列带有详细注释的实例来...在学习过程中,仔细阅读和分析代码及注释,动手实践编写和运行程序,是掌握C#面向对象编程的关键步骤。

    面向对象软件工程

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

    Java零基础-面向对象和面向过程.md

    ### Java零基础-面向对象和面向过程 #### 简介 本文档旨在为Java编程初学者提供关于面向对象编程(Object-Oriented Programming,简称OOP)与面向过程编程(Procedural Programming)的基础知识。我们将通过具体的...

    c++面向对象编程实例大全

    《C++面向对象编程实例大全》是一本专为初级学习者设计的教程,旨在通过丰富的实例深入浅出地讲解C++的面向对象编程概念。面向对象编程(Object-Oriented Programming,简称OOP)是C++的核心特性,也是现代软件开发...

    C#基于面向对象的计算器源代码,学习面向对象的好资料

    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将程序设计中的实体(如数据和操作)封装在独立的对象中,强调数据的表示和操作的结合。C#是一种支持OOP的强大语言,非常适合用来学习和...

    Java面向对象五子棋

    总的来说,这个Java五子棋项目是学习和理解面向对象编程的好例子,它展示了如何将复杂的游戏逻辑分解成独立、协作的类,以及如何通过对象和方法来模拟现实世界中的游戏过程。通过分析和实践这些源码,开发者可以深入...

    面向对象分析与设计课程设计(餐厅点菜系统).pdf

    面向对象的技术主要是以对象为基础来构建软件系统,它强调在系统开发过程中应用封装、继承和多态等面向对象的基本原则。UML(统一建模语言)是实现面向对象分析与设计的一种标准语言,它提供了一套图形化表示法,用...

    结构化程序设计方法与面向对象程序设计方法之比较.

    以描述一个电脑书店的销售情况为例,使用面向过程的程序设计,程序可能会显得较为冗长且难以维护,每次销售或采购都需要显式地更新每本书的数量。而在面向对象的程序设计中,可以通过定义一个“Book”类,包含书名、...

    面向对象经典讲解 有助于更进一步理解java对象

    它与传统的面向过程编程有着显著的区别。面向对象编程(OOP)强调的是数据和操作这些数据的函数(方法)的组合,即对象。在这个模型中,程序是由相互协作的对象集合构成的,而不是一系列孤立的步骤。 在Java中,...

Global site tag (gtag.js) - Google Analytics