A. 编程语言中 什么是面向过程 什么是 面向对象 他们有什么区别 都有什么好处 求解
。。。。面向对象: 举个例或汪子,盖一座大楼,你想到的是楼怎么盖,哪里要有柱子,哪里要有梁,哪里楼梯等等(这就是面向对象)、。
。。。。。。。。至于柱子该怎么建,用什么建,方的圆的,等等,这就是衡亮面向过程。
用面咐团宽向对象思考问题更符合我们人的思考方式。
其实我们人现实生活中都是在面向对象。比如:去饭店吃饭,你只要说明吃什么就可以了,有必要还了解这个菜是怎么做的,是哪里来的,怎么去种这个菜吗?
面向对象也可以说是从宏观方面思考问题,而面向过程可以说是从细节处思考问题。在面向对象中,也存在面向过程。
各有各的好处,主要是实际编程应用中,哪种思路适合,得结合实际情况看。
c++,java等都有面向对象。
只是一个逻辑思路,不要过于纠结于这个问题,理解就可以了。以后用不到、
望采纳!
B. 高级语言和面向对象语言有什么区别面向过程语言又是指的什么语言,它是否属于高级语言
按分类来说,计算机编程语言可以分为高级语言和非高级语言,也可以分为面向对象语言和非面向对象语言(可以说是分为面向对象和面向过程),当然,还要其他分类。
所以,高级语言和面向对象语言,两者没有可比性,属于不同分类。好比高矮肥瘦。高和瘦,不可比,高和瘦的区别,我回答不上来。
面向对象语言,按等级来分的话,属于高级语言吧。
面向过程语言么,就是语言代码按算法过程一步一步编写的语言。好比跨栏,先跨第一个,再跨第二个,一个个来,这就是过程,面向过程语言差不多就是这么个意思,跨的时候,先左脚还是先右脚,这也是一个过程。那么用面向过程的语言来写一个跨栏程序,就要一步一步写好怎么走。
这就是面晌灶向过程语言。雀谨猜
至于面向过程语言是不是高级语言,就好像问这个人很瘦,他高不高?不一定。面向顷型过程的语言,有低级的(如汇编),也有高级的(如C)。
面向对象语言么,写跨栏程序的时候,写了一个对象叫人,这个人有个功能叫跨栏,使用的时候就对这个人说:你,给我跨栏去。至于你怎么跨,随便你。
个人认为,其实面向对象也是封装了过程语言而已。本质上还是0和1的机器码在执行。只不过更符合我们对现实世界的抽象观念而已。比如那个跨栏的对象:人。里面的跨栏功能还是过程化的,当然,你可以写各种花样的跨栏方法,比起单纯的面向过程的跨栏要灵活。
C. 面向程序和面向对象有什么异同
面向过程:即将问题转化为关系和数值,通过关系和数值来描述问题,解决问题。模块化程度低。
面向对象不是简单的对编程对象的处理方式。它确切的说应该是这样的样子:首先将现实世界中,主体(即所谓对象)和主体间的关系进行想象(抽象),对应到编程中,强调程序中的各个主体(对象)和他们得关系(继承,多态什么的)一一对应现实世界中的主体枣缺山。
所谓面向对象,就是讲编程的理念,从对数据的算法分析,转变为对现实世界问题的剖析,进而使编程摆脱数据的束缚,使得程序就像自然世界的主体和主体间的关系那样,
先将程序变为为一个一个的主体的组合体,然后看主体间的关系,自然而然的使得代码非常好维护,重用性也非常强,因为你知道dog就是现实中的狗,那么狗这个主体有什么功能你自然知道,狗和人是什么关系,你也清楚,你就不必看代码来分析这段代码什么意思,和那段又有什么关系了。这是不是一种非常自然明了的编程方式呢。
很扮棚多教程上来就说这个怎么用,那个怎么回事,看代码看到头晕也不甚明了,编出的程序乱七八糟,想怎么编就怎么编,实际上,这样子编程已经不是面向对象了,因为他即不剖析主体和主体间的关系,也不将程序中的主体与关系和现实一一对应主体。
其实我很想知道,写那些编程书籍的人,本身是否是程序员,本身是否明白什么凳中是面向对象,知不知道面向对象是一种程序的设计方式,而不是程序的编写方式。
D. 编程语言中,面相对象与面向过程的区别是不是在于一个有类的存在,一个无类的存在
区别在于:面向对象语言直接支持面向对象编程。
为何这么说:
因为你可以使用C语言写出面向对裤中早象程序(很费劲)!
举个例子:
C++代码:
#include<iostream>
#include<cstdlib>
classShape{
public:
virtualvoidDraw()=0;
virtual~Shape(){}
};
classTriangle:publicShape{
public:
Triangle(){}
voidDraw()override{
std::cout<<"绘制一个三角形"<<std::endl;
}
};
classCircle:publicShape{
public:
Circle(){}
voidDraw()override{
std::cout<<"绘制一个圆"<<std::endl;
}
};
//用户代码
voidDrawShape(Shape*shape){
shape->Draw();
}
intmain(){
Trianglet;
DrawShape(&t);
Circlec;
DrawShape(&c);
system("pause");
}
C语言代码:
//定义Shape结构体的虚函数表结构体.
typedefstructVTableTag{
void(*Draw)(void*pThis);
}VTable;
//此结构体对应C++的Shape类.
typedefstructShapeTag{
VTable*pVTable;
}Shape;
//此结构体对应C++的Triangle类.
typedefstructTriangleTag{
Shapeshape;
}Triangle;
//此结构体对应C++的Circle类.
typedefstructCircleTag{
Shapeshape;
}Circle;
//对应C++Triangle类的Draw函数.
//参数pThis相当于C++的this指针.
voidDrawTriangle(void*pThis){
printf("绘制一个三角形 ");
}
//对应C++Circle类的Draw函数
//参数pThis相当于C++的this指针.
voidDrawCircle(void*pThis){
printf("绘制一个圆 ");
}
//Triangle结构体虚函数表,实现运行时多态.
staticVTableg_TriangleVTable={&DrawTriangle};
//Circle结构体虚函数表,实现运行时多态.
staticVTableg_CircleVTable={&DrawCircle};
//对应C++Triangle类的构造函数.
voidInitTriangle(Triangle*triangle){
triangle->shape.pVTable=&g_TriangleVTable;
}
//对应C++的Circle类构造函数.
voidInitCircle(Circle*circle){
circle->shape.pVTable=&g_CircleVTable;
}
//用户代码
voidDrawShape(Shape*shape){
shape->pVTable->Draw(shape);
}
intmain(){
Trianglet;
InitTriangle(&t);
DrawShape(&t.shape);
Circlec;
InitCircle(&c培昌);
DrawShape(&c.shape);
system("pause");
return0;
}
上面两段代码实现了同样的效果,并且都体现了面向对象的 抽象、继承和多态,但是代码胡雀的编写难度明显差距很大。
再举个真实的例子:
Windows API的接口大部分都是面向对象的并且通过C语言提供给用户调用。
所以,面向对象语言和面向过程语言的区别是:一个直接支持面向对象编程,另外一个间接支持或者不支持面向对象编程。
面向对象和面向过程的区别:面向对象关注问题本身,而面向对象关注解决问题的过程。
E. 面向对象与面向过程编程语言的区别
C是面向过程 C++、 JAVA是面向对象 面向对象和面向过程的区别 一个博大,一个精深. 总体而言,面向对象简单,面向过程对人员要求素质如旦过高 面向过程就是分析出解决问圆滑题所需要的步骤,然后用渣腔扰函数把这些步骤一步一步实现,使用的时候一个一个依次调用
F. 什么是面向过程的编程语言和面向对象的编程语言
C语言是面向过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数。程序运行的顺序都是程序员决定好了的。它是我学的第一种程序语言。
C++是面向对象的编程,类是它的主要特点,程序执行过程中,先由主函数进入,定义一些类,根据需要,执行类的成员函数,过程的概念被淡化了(实际上过程还是有的,就是主函数的那些语句),类就是对象,所以我们称之为面向对象程序设计。 不同点:1.编程模型
所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的.
第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码.如 C 等过程化语言.
第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处.
2.抽象
面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性.
管理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,DVD-ROM,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性.
面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应.
/* (我的理解)
*计算机是一个实体,我要输入字符,显示器显示出来,那么
*计算机(对象).输入(键盘属性).显示(显示方法)
*使用分层来引用,操作.而不用管计算机内部如何处理.
*只要有计算机对象,它就能响应我的操作,而我敲键盘,
*计算机对象就把这个消息传给屏幕,屏幕显示.
*/
计算机对象包含了它所有的属性,以及操作,这就是面向对象程序设计的三大原则之一:封装.
3.封装
封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用.
在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例.
在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义.
由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情.
4.继承
继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性.
继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.
5.多态
多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.
6.封装,继承,多态的组合使用
在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车
从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置.
从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.
从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁).
这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序
G. 为什么说java是面向对象编程语言,面向对象和面向过程最大的区别是什么
java里面全是类,实行的是万事万物皆对象
面向过程开发方式是对计算机底层结构的一层抽象,它明显把程序的内容分为数据和操纵数据的操作两部分。这种编程方式的核心问题是数据结构和算法的开发和优化。C
语言所提供的机制就是典型的结构化编程设施。
需要一步步去实行
面向对象就不同了,抽象数据类型方法虽然也有一定的抽象能力,但其核心仍然是数据结构和算法。而面向对象方法直接把所有事物都当作独立的对象,处理问题过程中所思考的不再主要是怎样用数据结构来描述问题,而是直接考虑重现问题中各个对象之间的关系。可以说,面向对象革命的最重要价值就在于改变了人们看待和处理问题的方式。
H. 面向对象程序设计语言和面向过程程序设计语言的区别有哪些
面向对象的特点是:封装,多态,继承。其中多态有分为重载和重写。面向内对象的编程容思想更加接近现实的事物。
有这样几点好处:
1、是编程更加容易。因为面向对象更接近于现实,所以你可以从现实的东西出发,进行适当的抽象。
2、在软件工程上,面向对象可以使工程更加模块化,实现更低的耦合和更高的内聚。
3、在设计模式上(似乎只有面向对象才设计到设计模式),面向对象可以更好的实现开-闭原则。也使代码更易阅读。
相对而言,面向过程的程序设计是面向对象程序设计的基础。面向对象的程序里面一定会有面向过程的程序片断的!
以上是小生的一点拙见,拿出来班门弄斧,实在不好意思。搂主的这个问题实在太大,还请各位大师给出更好的答案!
I. 面向过程语言和面向对象语言有什么区别两者谁更具优势
区别方面,面向过程语言最基本的概困销念是函数,面向过程语言将一个个功能封装成一个个函数。因此程序的耦合度较高。而面向对象语言最基本的概念是对象(数据及其操作的方法)。各个对象负责自己的工作,为其他手做对象提高功能。相对而言程序的耦合度较低,内聚度高。x0dx0a 优势方面,简单来说,面向过程语言(C语言为代表)编程最大的优点的效率高,所以现在操作系统或者视频编解码(比如H.264)等主要是采用接近底层C语言;x0dx0a 而面向对象语言(Java语言为代表)最大的优点是符合抽象,封装,细节隐藏等基本程序设计的原则。需求分析、程序设计、编码实现等过程可以无缝衔接(利用UML建模)。面向对象的程序在结构上更加健壮和稳定。因此类似淘宝网这些效率和性能的需求不是至关重要(当然也是性能很重要,相比之下更重要的是系统的稳定性、安全性)的后台是用Java写的。x0dx0a 不过这些只有等你做过很多很大很复杂的程序之后才会真正了解两者的区别和优势。汪薯游如果都是写HelloWorld程序,那两者基本不存在区别。