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

面对向编程

发布时间: 2023-01-02 05:17:59

Ⅰ 面向对象的程序设计语言是

相关举例如下:


1、Smalltalk:

Smalltalk被公认为历史上第二个面向对象的程序设计语言和第一个真正的集成开发环境(IDE)。由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。

Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor, Java 和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如Design Patterns, Extreme Programming(XP)和Refactoring等。

2、Eiffel:

Eiffel语言是继Smalltalk-80之后的另一个"纯"OOPL。这种语言是由OOP领域中着名的专家Bertrand Meyer等人20世纪80年代后期在ISE公司(Interactive Software Engineering Inc.)开发的,它的主要特点是全面的静态类型化、有大量的开发工具、支持多继承。

3、C++:

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

4、Java:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

Ⅱ 什么是面向对象编程

面相对象不是某一种语言的特性,而是一种编程思想。 C也是可以编写出很好的OO代码的,Gtk+就是典型的例子。
我们很多初学者往往一提到面相对象就一头雾水,我觉得很大程度上都是因为我们学习的第一们语言是C,而struct总是在后面才讲到,用C实现继承技术需要一定技巧,一般的教材上都不讲,加之我们刚开始遇到的学习程序有很小,很容易一个简单的流程就处理完了这所有因素结合在一起,就导致我们用程序解决问题的思维有了 一个定式: 任务是什么流程? 把流程切割成哪几块? 每块定义成什么函数?
等到我们所面临的业务比较复杂了,原本线状的流程图也就变成一个可怕的网状流程,我们根本找不到哪里是开始,哪里是结束,自然就无从下手
个人觉得,面向过程(或面向函数)的思维方式,其实就是程序员要把整个业务画到一个流程图中,因果关系,逻辑关系要搞得很清楚。你们回忆一下,你们在学习 C语言时,是不是很乐意在纸上或者脑子里画这种流程图来帮你们利清楚思路? 这种思维的最大问题在于,当这张流程图变成一张流程网的时候,人的脑容量是不可能对之进行管理的,而且,维护程序的时候也必须同样面对这张网,这对于维护代码的同事而言,简直就是一场灾难。
最初,我们只想得到一根线来帮助我们贯穿始终,但后来这条线越来越长,又多了许多分支,于是变成了一张网;最终,网越来越密,等到我们无法继续时,我们才发现,我们一直都在作茧自缚:)
下面,我举个例子来说明面向过程和面向对象的一点区别。
假设在一段游戏的代码中,有这样一个场景:有1000吨的货物,要从西安运到北京。
而面向对象(OO)的思维则会这样思考:-
定义类(封装性):
恩,这么复杂的送货任务,总要有个人来做吧:) OK,是得搞个押运员去弄。 于是,要定义一个类:Escort。 稍后给它定义好新的方法:)-继承:
这个押运员得是个人吧,应该有人的一切属性(如眼耳鼻舌,受想行识),好吧,我不用重新实现这些,游戏中一般都有People的角色,从那里继承就好了, 于是,Escort 就成了People的子类,他可以享用People的一切属性和方法这就是继承。你不必为了Escort再重写那么多代码,因为已经有写好可用的了。 要知道,People中很多方法在Escort中都是用得到的。-定义方法:
好了,现在再分析一下Escort可能遇到的问题,以及他面对 问题所应具有的解决问题的能力就是他具有的方法。 山洪?地震?泥石流? 这些都是自然灾害,没办法避免,OK,那就绕道而行吧! 得,第一个方法有了: Escort::choseWay()。 那么,他怎么知道哪里有自然灾害导致道路不通呢? 废话!听广播,看电视撒! 哦,很好,我们的Escort是从People中继承下来的,而这些方法我们都在People中实现了,这里已经没有多少事情做了。-
现在我们假设有这样一种情况:所有的人(People)都可能半路遇到凶残的土匪,如果是你,你会怎么做? 我想一般人都会跟我一样:把钱给人家保命。 所以,People中处理土匪的方法会这么定义:{弃财保命}。 但是,作为一个Escort,你要是把货物都丢了,这个Escort就失败了,你们看看《闯关东》上的垛爷怎么做的:爷们儿,碰了,这几个钱个林子后面 的弟兄们买酒喝。所以,我们的Escort要重新实现处理土匪的方法,就是 { 按照道儿上的规矩,打手势,弃小财而保全货物 }。
现在,我们知道,所有的people都具有处理土匪的能力,但是不同的people对土匪的处理行为可能会不同。 再设想一下,某个山寨区域的代码是由另外一个同事,甚至另外一个团队编写的,他们只知道他们的土匪面对的对象类型都是People,他们不知道 People还有没有子类,还有多少子类等等。 幸运的是,OO的多态可以让这些设计山寨区域的团队不必考虑这些问题,他们只需要调用People的处理土匪方法,在运行时刻,
程序会自动根据实际传入的对象来判断最终要真正执行的方法。这种
调用同一基类接口,在运行时根据对象来执行相应对象类型中所定义的方法的行为就是多态
。 注: 这个定义是我自己给出的,如果您发现有不正确,请指出来,也方便我即使改正。 在很多C++教程中,多态的定义多为:多态是指父类指针调用子类方法。 我觉得这种说法欠妥,多态是很多OO语言的共性,比如python中没有指针,但照样有多态的功能。不过python是直接根据对象类型识别的,所以这个 概念在python的教材中淡出了。-
面向对象的扩展性:
相对于面向过程(函数)的编程思想,面向对象思想更易于编写易扩展空间。比如上面的送货的例子,这个游戏可能只是一个战争类游戏。后来,老板为了刺激 消费,要把它像《虚拟人生》那样的方向改进。具体一点,老板希望游戏中可以有一些性方面的设计这个虽然不健康,但是在市场上却往往很管用。这个时候, 你不必在每个人,每个分支上都添加关于性方面的代码,你只需要给People类添加一个People::makeLove(People who)方法(参数的配偶对象)就OK了。至于which people, with who, where, when这些问题,留给那些处理具体场景的人去做就好了。-
面向对象与面向过程的联系:
面向对象和面向过程不是水火不容的,对象中是有过程的。在编程工作中,你永远无法避免对流程的处理,面向对象的思想只是给你提供了一种更合理的方式来你规 划程序中的流程,如果你是一个team leader,或者总体设计师,这将更有利于你把任务分配给你的队员。尝试这用OO思维去认识身边的事物,去规划自己的程序,很快你就会转入OOP的模 式,你会发现这种思路的确可以减轻大脑负荷。

Ⅲ 什么叫做面向对象的编程

具个例子吧.......
用户登陆

面向过程的写法是
if (名字和密码正确) {}
else if (密码错误) {}
....

面向对象的写法是
try {}
catch (密码错误Exception) {}

再简单的说
面向对象就是别人给你一个东西 比如String 你处理他就是了 你不要去想他给你的String的具体数值是什么 你是的想法是站在"处理方"的

而面向过程就是要考虑这个东西里面的数值 再根据具体的数值来决定走向 你的想法是站在"被处理方"的

至于什么以上说的什么封装 继承 什么的 那都是为了完成这个而必须要用到的功能 不是说有这功能就是面向对象 我也可以用JAVA写面向过程 一样用封装 用继承

OO是一种思路 是一种模式 多从这方面想就会慢慢明白了

Ⅳ 简述面向对象编程思想的三大特征

1*继承
继承是一种联合类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表达共性的方法。对象的一个新类可以从现有的类派中产生这个过程叫做类继承。新类继承了原始类的特性,新类成为原始类的派生类即子类,而原始类称为新类的基类即父类。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更加适合特殊的需求。
2*封装
封装是把过程和数据包围起来,对数据的访问只能通过已定义的画面。面对对象计算始终与这个基础概念及现实世界可以被描绘成一系列完全自治封闭的对象,这些对象通过一个受保护的接口访问其他对象。
3*多态性
多态性是指不同类的对象对同一消息做出响应多态性包括参数化多态性和包含多态性。多态性语言具有灵活抽象行为共享代码共享的优势很好地解决了应用程序函数同名问题。

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

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

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

两者区别:

(1)从设计思路来看。

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

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

(2)从适用范围来看。

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

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

(3)从代码复用来看。

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

(5)面对向编程扩展阅读:

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

热点内容
苹果传输安卓机视频怎么不压缩 发布:2025-09-18 14:53:43 浏览:681
sql页面 发布:2025-09-18 14:51:08 浏览:951
无法访问移动硬盘参数错误 发布:2025-09-18 14:50:15 浏览:547
exist数据库 发布:2025-09-18 14:42:36 浏览:660
白百何访问 发布:2025-09-18 14:20:14 浏览:460
人人贷源码 发布:2025-09-18 14:11:02 浏览:998
pythonlist删除list 发布:2025-09-18 14:03:29 浏览:250
我的世界服务器手机版新手 发布:2025-09-18 13:51:33 浏览:841
php从入门到精通下载 发布:2025-09-18 13:36:44 浏览:167
抖音使用脚本 发布:2025-09-18 13:29:36 浏览:816