什么是“面向过程的语言”、什么是“面向对象的语言”
C语言是面向过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数。程序运行的顺序都是程序员决定好了的。它是我学的第一种程序语言。
C++是面向对象的编程,类是它的主要特点,程序执行过程中,先由主函数进入,定义一些类,根据需要,执行类的成员函数,过程的概念被淡化了(实际上过程还是有的,就是主函数的那些语句),类就是对象,所以我们称之为面向对象程序设计。 不同点:1.编程模型
所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的.
第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码.如 C 等过程化语言.
第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处.
2.抽象
面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性.
管理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,DVD-ROM,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性.
面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应.
/* (我的理解)
*计算机是一个实体,我要输入字符,显示器显示出来,那么
*计算机(对象).输入(键盘属性).显示(显示方法)
*使用分层来引用,操作.而不用管计算机内部如何处理.
*只要有计算机对象,它就能响应我的操作,而我敲键盘,
*计算机对象就把这个消息传给屏幕,屏幕显示.
*/
计算机对象包含了它所有的属性,以及操作,这就是面向对象程序设计的三大原则之一:封装.
3.封装
封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用.
在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例.
在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义.
由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情.
4.继承
继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性.
继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.
5.多态
多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.
6.封装,继承,多态的组合使用
在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车
从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置.
从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.
从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁).
这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序
面向对象语言是只一切操作都以对象为基础,它是由面向过程语言发展而来的,但正是它的这个特性使得面向对象语言对底层的操作不是很方便。例如:java语言。
面向过程语言是以过程或函数为基础的,这种语言对底层硬件,内存等操作比较方便,但是写代码和调试维护等会很麻烦。例如:c语言
BASIC、FORTRAN、C、SQL都属于面向过程的程序设计语言?
BASIC、FORTRAN、C、SQL是面向过程的程序设计语言。面向过程的程序设计语言通过定义一系列的过程来解决问题。这些过程定义了一组操作,可以在程序中重复使用,从而提高代码的复用性。BASIC(Beginners All-Purpose Symbolic Instruction Code)是一种通用的、用于教学的程序设计语言。它拥有简单的语法和易于理解的...
在C语言中,什么叫做面向对象,什么叫做面向过程?
面向对象和面向过程都是编程思想,分别以对象和过程为主要目标进行编程。1、面向对象:面向对象(Object Oriented)是一种软件开发方法。Object Oriented的概念和应用已经超越了编程和软件开发。面向对象是一种理解和抽象现实世界的方法。它是计算机编程技术发展的产物。2、面向过程:面向过程(Procedure Oriented)...
在C语言中,什么叫做“面向对象”,什么叫做“面向过程”?
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。例如五子棋,面向过程的设计思路就是首先分析问题的...
什么是面向过程的编程语言和面向对象的编程语言
除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。有人可能会说PHP不是一个真正的面向对象编程的语言, PHP 是一个混合型语言,你可以使用面向对象编程,也可以使用传统的过程化编程。然而,对于大型项目的开发,你可能想需要在PHP中使用纯的面向对象编程去声明类,而且在你的项目...
C++中是面向对象, C是面向过程,对吗?
对的,C++是一门面向对象的编程语言,而C是一门面向过程的编程语言。这两者的主要区别在于编程思想和语言特性的不同。面向对象编程(OOP)是一种以对象为中心的编程范式,强调将程序组织成相互交互的对象。面向对象的编程语言(如C++)提供了类、对象、封装、继承和多态等特性,以便更好地组织和管理代码...
什么是面向过程概要设计?
“面向过程”是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。过程 面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现....
面向过程的程序设计语言是?A.VFP B.C C.C++ D.Jave
B,其它三个都是面向对象
面向过程的程序设计语言是 。 A) 机器语言 B) 汇编语言 C) 高级语言...
程序设计语言按其级别分为机器语言,汇编语言和高级语言三大类。高级语言又可分为面向过程的程序设计语言和面向对象的程序设计语言。面向过程的程序设计语言,一般有c语言。Java语言属于面向对象的程序设计语言。
面向过程语言又称( )。 A. 面向问题语言 B. 描述语言 C. 面向对象语言...
B 描述语言 面向过程的语言:它采用了完全符号化的描述形式,用类似自然语言的形式描述对问题的处理过程,用数学表达式的形式描述对数据的计算过程。可见,高级语言只是要求人们向计算机描述问题的求解过程,而不关心计算机的内部结构,所以把高级语言称为 "面向过程语言 ",它易于被人们理解和接受。
c是什么语言
C是一种计算机程序设计语言。C语言是一种通用的、过程式的计算机程序设计语言。其命名来源于创始人丹尼斯·里奇的名字缩写“C”。它具有高级语言和汇编语言的特点,是一种面向过程的语言。它既可以作为系统级编程语言用于开发操作系统和应用软件,也可以作为应用型编程语言用于开发各种实际应用软件。它的语法...
朝卓康利: 它的最大特点是能够大幅度的提高软件项目的成功率,减少日后的维护费用,提高软件的可移植性和可靠性. 面向对象的程序设计立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者.它通...
张掖市19580085124: 谁能为我解释一下什么是面向对象的程序语言,什么是面向过程的程序语言? - ?
朝卓康利: 什么是面向对象编程? 译者序 不要将本文简单地视为是对C++特征的一个介绍.它的意义在于,一方面介绍了编程风格的演变,以及这种演变背后的动机 .另一个方面,它特别澄清了基于对象的(OB)和面向对象(OO)的异同,这是具有很...
张掖市19580085124: 什么是面向对象? 有哪些语言是面向对象语言,有哪些语言是面向过程的? - ?
朝卓康利: 面向对象的对象是人,过程一般是做事的过程,对象的语言是与人交流的语言,过程语言时您做事的语言及思维方式!
张掖市19580085124: 什么是“面向过程的语言”、什么是“面向对象的语言” - ?
朝卓康利: 面向对象和面向过程都是一种将现实世界事物抽象的过程.所谓面向对象的描述对事物按一定共性建立类别进行描述的过程.人可以按性别分类:男人 女人,你是怎么建立这个概念,你刚生出来就知道了吗,不是,这是在日后的生活中慢慢理解...
张掖市19580085124: C语言什么是面向过程,什么是面向对象啊??求解析,举个例子 - ?
朝卓康利: C语言是面向过程.你了解下面向对象就知道区别了,“对象”大概就是一个程序的零部件,就是把一些函数、字段、属性(你暂时就想是C语言的一些函数和变量吧)包装在一起,这么做的好处是什么,利于重用,便于管理,好理解,总之好处一坨.就好比一辆车的一个部件,要换就换吗,不会影响到整个程序的框架吧. 要深入还是比较抽象的,建议学C的时候顺便看下C++或者其他面向对象语言 从网上找个项目看看.实践学的比较快.如果要学习资料的话可以留邮箱,发点给你.
张掖市19580085124: 什么是面向对象的计算机语言?什么是面向过程的语言?面向对象和面向过程什么意思啊 - ?
朝卓康利: 面向对象语言一般以类为单位,如Java.面向过程语言一般以函数为单位,如C语言.
张掖市19580085124: 高级语言和面向对象语言有什么区别?面向过程语言又是指的什么语言,它是否属于高级语言请写出它们的原理,并具体举例 - ?
朝卓康利:[答案] 高级语言是指有一定语法逻辑的语言,比如C C++等(不是汇编那种机器语言的就可以称作高级语言,意思就是说可以和人的逻辑相符的语言) 面向对象语言指的是以类和对象为主的一种模型语言,比如C++,所有的类和对象都可以映射到现实中. ...
张掖市19580085124: 面向过程的程序设计语言是什么? - ?
朝卓康利: 高级语言
张掖市19580085124: 什么叫面向对象语言?什么又叫面向过程语言?他们有什么区别??
朝卓康利: 面向对象语言是只一切操作都以对象为基础,它是由面向过程语言发展而来的,但正是它的这个特性使得面向对象语言对底层的操作不是很方便.例如:java语言. 面向过程语言是以过程或函数为基础的,这种语言对底层硬件,内存等操作比较方便,但是写代码和调试维护等会很麻烦.例如:c语言