当前位置:首页 » 编程软件 » 面向对象编程与面向过程编程

面向对象编程与面向过程编程

发布时间: 2022-07-06 01:45:04

A. 面向对象和面向过程的区别是什么

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

一,编程思想不同。

  1. 面向过程思想顾名思义其实就是面向解决问题的步骤进行编程。面向过程的编程思想总结起来就八个字——自顶向下,逐步细化!

  2. 面向对象思想就是分析参与问题的有哪些实体,这些实体应该有的属性和方法,通过调用这些实体的属性和方法解决问题。

二,编程过程不同。

  1. 将要实现的功能描述为一个从开始到结束按部就班的连续的步骤(过程);依次逐步完成这些步骤,如果某一步的难度较大,又可以将该步骤再次细化为若干个子步骤;面向过程,就是按照我们分析好了的步骤,按部就班的依次执行就行了。

  2. 面向对象思想就是分析参与问题的有哪些实体,这些实体应该有的属性和方法,通过调用这些实体的属性和方法解决问题。

    三,编程主题不同。

    1. 面向过程程序的主体是函数,一个函数就是一个封装起来的模块,可以实现一定的功能,各个子步骤往往就是通过各个函数来完成的,从而实现代码的重用和模块化编程。所以当我们用面向过程的思想去编程或解决问题时,首先一定要把详细的实现过程弄清楚。一旦过程设计清楚,代码的实现简直轻而易举。

    2. 面向对象的主体是实体,分析哪些动作是由哪些实体发出的;定义这些实体,为其增加相应的属性和功能;让实体去执行相应的功能或动作。面向对象实质上就是面向实体,所以当我们使用面向对象进行编程时,一定要建立这样一个观念:万物皆对象!

    B. 2. 面向过程的程序设计和面向对象的程序设计分别指什么两者分别有什么特点

    一、面向过程概念

    面向过程是一种以过程为中心的编程思想,面向过程编程是基于“冯·诺依曼”模型的。在这种模型中,程序与变量一起存储,程序中包含一系列指令,并把这些指令以函数的方式组织起来。

    特性

    自顶向下、逐步求精、模块化

    优点

    性能比面向对象高,因为类调用需要实例化,开销比较大,比较消耗资源。

    如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,因为在它们看来性能是最重要的因素。

    缺点

    没有面向对象易维护、易复用、易扩展

    (按照面向过程的思想,在解决问题时,各函数之间是为了这个问题服务;而面向对象的思想,则是站在提出问题的主体的角度去解决问题,可将解决这一具体问题的步骤,抽象为解决这一类问题的方法,以后再遇到类似的问题,可以复用解决思路)

    二、面向对象概念

    面向对象是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的方法。通过面向对象的理念,将计算机软件系统能与现实世界中的系统一一对应。

    特性

    封装、继承、多态、抽象

    优点

    易维护、易复用、易扩展(在解释面向过程的缺点是有对面向对象的优点进行解释)

    缺点

    性能比面向过程低(同上)

    C. 面向对象编程和面向过程有什么不同

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

    面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;

    面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

    可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

    如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

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

    面向过程与面向对象的优缺点

    面向过程

    优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。

    缺点:没有面向对象易维护、易复用、易扩展

    面向对象

    优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护

    缺点:性能比面向过程低

    D. 编程语言中的面向对象和面向过程有什么不同

    面向对象:(1)对象。
    对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
    (2)对象的状态和行为。
    对象具有状态,一个对象用数据值来描述它的状态。
    对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
    对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中
    (3)类。
    具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。
    类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
    类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
    (4)类的结构。
    在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。
    ①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is
    a”关系。
    ②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has
    a”关系。
    (5)消息和方法。
    对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。
    类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体
    面向对象的特征
    (1)对象唯一性。
    每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
    (2)分类性。
    分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
    (3)继承性。
    继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
    继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。
    在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。
    在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
    在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。
    采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。
    (4)多态性(多形性)
    多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
    多态性允许每个对象以适合自身的方式去响应共同的消息。
    多态性增强了软件的灵活性和重用性。
    三、面向对象的要素
    (1)抽象。
    抽象是指强调实体的本质、内在的属性。在系统开发中,抽象指的是在决定如何实现对象之前的对象的意义和行为。使用抽象可以尽可能避免过早考虑一些细节。
    类实现了对象的数据(即状态)和行为的抽象。
    (2)封装性(信息隐藏)。
    封装性是保证软件部件具有优良的模块性的基础。
    面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。
    对象是封装的最基本单位。封装防止了程序相互依赖性而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。
    (3)共享性
    面向对象技术在不同级别上促进了共享
    同一类中的共享。同一类中的对象有着相同数据结构。这些对象之间是结构、行为特征的共享关系。
    在同一应用中共享。在同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。使用继承来实现代码的共享,这也是面向对象的主要优点之一。
    在不同应用中共享。面向对象不仅允许在同一应用中共享信息,而且为未来目标的可重用设计准备了条件。通过类库这种机制和结构来实现不同应用中的信息共享。
    4.强调对象结构而不是程序结构这个在
    http://cpod.cnki.com.cn有详细的比较

    E. 面向对象程序设计语言和面向过程程序设计语言的区别有哪些

    面向对象的特点是:封装,多态,继承。其中多态有分为重载和重写。面向对象的编程思想更加接近现实的事物。
    有这样几点好处:
    1、是编程更加容易。因为面向对象更接近于现实,所以你可以从现实的东西出发,进行适当的抽象。
    2、在软件工程上,面向对象可以使工程更加模块化,实现更低的耦合和更高的内聚。
    3、在设计模式上(似乎只有面向对象才设计到设计模式),面向对象可以更好的实现开-闭原则。也使代码更易阅读。
    相对而言,面向过程的程序设计是面向对象程序设计的基础。面向对象的程序里面一定会有面向过程的程序片断的!
    以上是小生的一点拙见,拿出来班门弄斧,实在不好意思。搂主的这个问题实在太大,还请各位大师给出更好的答案!

    F. 面向对象的编程和面向过程的编程的区别

    C语言是面向过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数。程序运行的顺序都是程序员决定好了的。它是我学的第一种程序语言。

    C++是面向对象的编程,类是它的主要特点,程序执行过程中,先由主函数进入,定义一些类,根据需要,执行类的成员函数,过程的概念被淡化了(实际上过程还是有的,就是主函数的那些语句),类就是对象,所以我们称之为面向对象程序设计。 不同点:1.编程模型

    所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的.

    第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码.如 C 等过程化语言.

    第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处.

    2.抽象

    面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性.

    管理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,DVD-ROM,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性.

    面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应.

    /* (我的理解)

    *计算机是一个实体,我要输入字符,显示器显示出来,那么

    *计算机(对象).输入(键盘属性).显示(显示方法)

    *使用分层来引用,操作.而不用管计算机内部如何处理.

    *只要有计算机对象,它就能响应我的操作,而我敲键盘,

    *计算机对象就把这个消息传给屏幕,屏幕显示.

    */

    计算机对象包含了它所有的属性,以及操作,这就是面向对象程序设计的三大原则之一:封装.

    3.封装

    封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用.

    在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例.

    在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义.

    由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情.

    4.继承

    继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性.

    继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.

    5.多态

    多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.

    6.封装,继承,多态的组合使用

    在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车

    从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置.

    从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.

    从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁).

    这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序

    G. 试述面向过程的编程语言和面向对象的编程语言的概念、特点和区别。

    在面向过程程序设计中,问题被看作一系列需要完成的任务,函数则用于完成这些任务,解决问题的焦点集中于函数。它的主要观点是采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构构造程序,即任何程序都可由顺序、选择、循环三种基本控制结构构造。

    面向对象语言(Object-Oriented Language)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分,有识认性、多态性、类别性和继承性四个主要特点。

    两者区别:

    (1)从设计思路来看。

    面向过程:程序设计的重点是分析解决问题的步骤,以及完成步骤的流程,是一种结构化自上而下的程序设计方法。

    面向对象:程序设计的重点是把构成问题的事物分解成对象,从局部着手,通过迭代的方式逐步构建出整个程序,是一种以数据为核心,以类设计为主的自下而上的程序设计方法。

    (2)从适用范围来看。

    面向过程:由于不涉及实例化对象等操作,程序性能更高,开销更少,因此像切入式等对资源要求较高的系统大多都采用面向过程开发。

    面向对象:由于其抽象、封装、继承、多态的特性,使得系统具有更好的扩展性、维护性、复用性,对于功能复杂且维护成本较高的系统采用面向对象的开发。

    (3)从代码复用来看。

    二者都可以实现代码复用,但是面向过程主要是函数,而面向对象主要是类。

    (7)面向对象编程与面向过程编程扩展阅读:

    由于面向过程的编程语言对解题过程的描述采用了比较接近人们习惯的方式,因而易学、易懂、易使用,是用户广泛使用的一类程序设计语言。这类语言的代表有ALGOL,FORTRAN,COBOL,PL/1,PASCAL和ADA等。

    H. 面向对象的编程和面向过程的编程有什么区别

    举个例子,比如开车、加速、减速、刹车。

    用面向过程来说就是你要先有一个车,然后这四个分别是4件事,也就是说你要写4个函数,分别是开车、加速、减速、刹车,这分别是四个事件,如果使用的话要调用4个函数。

    但是对于面向对象的编程来说,我们关心的是车这个类,而不是开车、加速、减速和刹车这四个过程。这4个过程是车这个类的一部分,只是其中的一种行为,而且对于行为的顺序没有强制要求。

    I. 面向对象和面向过程分别是什么

    关于面向对象和面向过程的区别?如果我们不用专业知识来看,面向对象就是面对的一个固定的人或者事物,而面向过程就是面对一件事情发生的过程,但是专业的解释是什么呀?下面我们就说说他们专业的区别不同是什么。

    他们的区别从语法上来判断,一个是类一个则是一个新的书籍类型。从思想上,不同的是面向过程是由过程、步骤、函数组成,以过程为核心。而面向对象就是以对象为中心的,首先先开发的类得到对象,然后在通过对象之间相互通信来实现的。

    J. 面向对象 什么是面向过程 面向对象和面向过程的区别

    面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。它具有抽象性、封装性、继承性及多态性。
    面向对象与面向过程程序设计有如下不同:
    (1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。 函数与数据是否分离
    (2)面向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。
    (3)面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。 预定顺序;由运行时各种事件的实际发生来触发
    (4)面向对象程序设计方法可以利用框架产品(如MFC,Microsoft Foundation Classes)进行编程。 面向对象可利用框架 面向对象和面向过程的根本差别,在于封装之后,面向对象提供了面向过程不具备的各种特性,最主要的,就是继承和多态。

    热点内容
    安卓升级后手机变卡怎么办 发布:2025-02-11 09:58:01 浏览:112
    土工数据库 发布:2025-02-11 09:48:55 浏览:962
    libxml2编译 发布:2025-02-11 09:48:45 浏览:744
    java类的复制 发布:2025-02-11 09:48:45 浏览:600
    127小时ftp 发布:2025-02-11 09:47:10 浏览:851
    安卓怎么看苹果手机的行驶轨迹 发布:2025-02-11 09:26:19 浏览:884
    h板电影种子ftp 发布:2025-02-11 09:06:10 浏览:738
    c语言数据类型定义 发布:2025-02-11 09:00:38 浏览:237
    一个小时如何选择服务器 发布:2025-02-11 08:58:14 浏览:442
    网易我的世界服务器推荐国服 发布:2025-02-11 08:56:34 浏览:241