`
Yinny
  • 浏览: 293340 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

面向过程编程和面向对象编程

 
阅读更多
面向过程编程和面向对象编程

一、面向过程编程

面向过程编程将程序分成了"数据"和"处理函数"两部分,程序以"处理函数"为核心,如果要执行什么操作,就将"数据"传给相应的"处理函数",返回我们需要的结果.

面向过程的思路很好掌握,上手容易,但它存在三方面的问题:

1、数据和处理函数没有直接的关联,在执行操作的时候,我们不但要选择相应的处理函数,还要自己准备处理函数的数据,也就是说,在执行操作时,我们需要同时关注处理函数和数据.

2、数据和处理函数都城暴露在同一作用域内,没有私有和公有的概念,整个程序中所有的数据和处理函数都可以互相访问,在开发初期也许会开发速度很快,但到了开发后期和维护阶段,由于整个程序耦合得非常紧,任何一个处理函数和数据都有可能关联到其他地方,容易牵一发而全身动,从而加大了修改难度.

3、面向过程的思维方式是典型的计算机思维方式--输入数据给处理器,处理器内部执行运算,处理器返回结果.而实际生活中,我们的思路却不是这样--实际生活中所有的东西都是有状态有动作的物件,能用面向过程思维描述的只是物件的动作.用面向过程的思维方式编程,是无法描绘客观世界的事物的,我们编程的时候无法直接使用生活中的思维方式.

二、面向对象编程

面向对象编程是抛开计算机思维,使用生活中的思维时行编程的编程方式.面向过程的思维就是描述一个个"动作",而面向对象的思维就是描述一个个"物件",客观生活中的物件,都可以通过面向对象思维映射到程序中--如果你使用的编程语言支持面向对象,在程序中我们管"物件"叫做"对象",对象由两部分组成:"属性"和"行为",对应客观世界中的物件的"状态"和"动作".

程序由变量和函数组成,属性本质其实是个变量,也就是面向过程中的数据,而行为的本质其实是函数,也就是面向过程中和处理函数.不同的是,面向过程中,数据和处理函数并没有关联起来,共同属于某个物件.面向对象将数据和处理函数定义到了一个对象的内部,作为这个对象的属性和行为存在.在对象外部,属性和行为可以用对象的属性和对象的行为来调用,从而让程序有了按真实世界的思维方式进行描述的能力.在对象内部,对象的属性和行为通过this关键字关联起来.



面向过程编程所有的数据和处理函数都是公有的,整个编程的思维过程就是定义数据,定义处理函数,然后将数据传给处理函数进行处理,处理函数之间也可以互相调用,数据和处理函数紧密耦合.

面向对象编程的思维过程是定义一个个对象,对象有自己的属性和行为,因为属性和行为都是从属于对象的,于是有了"对象内"和"对象外"的概念,整个程序可以由一堆对象组成,对象与对象之间可能会有通信,为了实现这种通信,对象会将自己的部分属性和行为设计成公有,暴露出来成为通信的接口.对象和对象之间的通信都城是建立在接口的基础上的.当然我们可以将对象所有的属性和行为都设为公有的,全部都作为接口,但接口越多,会让对象之间耦合越紧密,增加维护难度,所以一般情况下,我们都会尽量将对象的属性和行为设为私有,只将必要的属性和行为设为公有.但对象的公有属性和公有行为越少,整个程序的扩展性会越差,所以我们在设计公有和私有的时候需要权衡一下,在不影响扩展性的前提下,尽量将属性和行为设为私有.
分享到:
评论

相关推荐

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

    首先C面向过程的编程,C++和JAVA都是面向对象的编程。 二者用最简单的例子来说 比如说:我吃饭 面向过程:着重在吃的过程,要具体描述吃的没一个步骤,比如夹米饭,张嘴,我进行咀嚼等之类的过程 面向对象:是先将...

    Java面向对象编程思想

    Java 的核心是面向对象编程.所有的java程序都是面向对象的。 以前总听老师说c语言是面向过程的,c++和java是面向对象的,这些糊涂老师却从来不说明何为面向过程,何为面向对象,搞得我一直对此稀里糊涂。 最近看了...

    第16章 LabVIEW中的面向对象编程,labview面向对象的框架,LabView

    该文件详细介绍了使用Labview语言进行面向对象的编程,其中讲解了详细的编写过程并给出了相应的范例供大家参考学习。

    JAVA面向过程的程序设计

    1. 面向过程的程序设计 面向过程——面向机器 –其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。–算法+数据结构 l数据结构利用计算机的离散逻辑来量化表达需要解决的问题。 l –...

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

    内容概要: 本文档详细介绍了Java编程中的面向对象编程(OOP)和面向过程编程(Procedural Programming)两种主要编程范式。通过示例代码和详细解释,帮助读者理解这两种编程方式的概念、特点和用法,并对比它们之间...

    面向对象和面向过程的区别

    早期的程序设计,大量使用共享变量(全局变量)和GOTO语句一类的东西,后来有人证明所有有意义的程序流程都可以使用三种基本流程(顺序、选择、重复)来实现,并提出“GOTO有害说”,从此人们进行编程的方式发生重大...

    OC面向对象编程基础

    面向对象,以及区别与面向过程,理解类和对象的概念,设有的实验

    浅谈面向过程与面向对象编程思想_以五子棋小游戏开发为例

    浅谈面向过程与面向对象编程思想_以五子棋小游戏开发为例

    面向对象程序设计课程设计——学生成绩管理系统

    全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法。正确理解掌握C++面向对象程序设计的基本特性:类、对象、继承与派生、多态、虚函数、模板、流类库等。遵循软件过程的各个环节进行系统分析、设计、...

    Java面向对象编程指南

    权威的Java面向对象权威指南,比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。...

    javascript面向对象编程

    资源名称:Javascript面向对象编程   内容简介: 从语言的视角来看,面向对象的程序设计和面向对象的Javascript 语言绝对不是什么摩登的  东西;Javascript 最开始就是被设计成一...

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

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

    从面向过程到面向对象

    在这期间,程序设计语言主要经历了从面向过程(如C和Pascal语言)到面向对象(如C++和Java语言),再到面向组件编程(如.NET平台下的C#语言),以及正在快速发展的面向服务架构技术(如SOA和WebService)。

    《C语言面向对象程序设计》经典课件完整版

    谭浩强《C++面向对象程序设计》面向过程部分经典课件完整版

    Java面向对象编程经典实例-模拟彩票

    Java面向对象编程经典实例-模拟彩票 Eclipse工程

    C++-面向对象编程-000-面向对象

    C+±面向对象编程-000-面向对象-2020-3-16 目录一、面向对象概述(1)封装(2)继承(3)多态二、面向对象与面向过程编程1.面向过程编程(1)软件重用性差(2)软件可维护性差(3)开发出的软件不能满足用户需要2.面向对象编程3...

    c#基于面向对象的程序设计

    一个c#基于面向对象的程序设计,已在实践中应用。

    什么是面向对象的程序设计

    面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:...

Global site tag (gtag.js) - Google Analytics