㈠ 为什么要用面向对象思想编程
面向对象的主要思想是“继承”、“封装”、“多态”。这种思想方便解决较为复杂的项目,且维护起来较为容易。
㈡ 编程中的“对象”是指什么
对象其实就是一种封装的概念,它把事物封装成一个类,然后提供类的接口,而具体的过程人们是看不到的。
举个例子,比如我用C语言写一个交换函数 swap(a,b);当你引用这个函数时,你可以完全的看到执行的过程。
但是面向对象的编程就不是这样,我写了一个类,然后提供了一个交换的接口。那么当其他人来想使用这个接口的时候就会这样用a.swap(b);它只能看到这个swap()接口,而看不到具体的执行过程,过程本身都是在对象的内部来处理的,而这个类本身就同一类对象的一个集合。
类是一个抽象概念,而对象则是这一个概念下的一个实体。就比如有一个灯泡a,灯泡b都是一个对象,而灯泡这个抽象概念的集合则称为类。
同理,VB在编程的时候也是将对象封装成类,然后来使用的,用户不必去了解具体的执行过程。
㈢ 什么是面向对象编程
前言:面向对象程序设计(Object-Oriented Programming,以下简称OOP)是一种起源于六十年代的Simula语言,发展已经将近三十年的程序设计思想。其自身理论已经十分完善,并被多种面向对象程序设计语言(Object-Oriented Programming Language,以下简称OOPL)实现。如果把Unix系统看成是国外在系统软件方面的文化根基,那么Smalltalk语言无疑在OOPL领域和Unix持有相同地位。由于很多原因,国内大部分程序设计人员并没有很深的OOP以及OOPL理论,很多人从一开始学习到工作很多年都只是接触到c/c++,java,vb,delphi等静态类型语言,而对纯粹的OOP思想以及作为OOPL根基的Smalltalk以及动态类型语言知之甚少,不知道其实世界上还有一些可以针对变量不绑定类型的编程语言。而这些对比却是深刻理解OO理论的重要部分,而国内这方面的资料也为数不多。故把自己的一些OO学习心得写下来做为一个系列文章(一共三篇,第一篇描叙OOP的一些基本但容易被误解的理论,第二篇主要说明各种OOPL演化和发展以及对于OOP理论的支持,第三篇主要是说模式和组件在OOP中的地位以及展望OOP的未来),由于文章描叙的只是自己对于OOP/OOPL的理解,错误以及浅薄之处在所难免,只是希望对大家能起到抛砖引玉的作用。
㈣ 编程中的“对象”是指什么,一般有哪些
你这个问题我来帮你解决吧!打个比方!你要去你的房间欢新衣服!那么先要走进你的房间,然后拿到新衣服!然后再换上,中间所以做的事,就是过程!比如你走进房间,这是一个过程!拿新衣服也是一个过程。对象!比如你对一个人说话!那么这个人就是一个对象!在比如你在看书!或者看电视,这些都是对象!对象就是看得见的物体我们进行操作,过程,就是一个过程。
㈤ 面向对象编程是什么意思
过程就是一行一行代码写。如果需要用同一行代码。得复制粘贴
对象则不需要。你可以这么区分吧~
㈥ 怎么理解面向对象编程
我觉得没必要去深究他的意思。
按我的理解,面向对象编程,主要是将我们实际生活中的对象经过抽象,将它定义成为一个类,通过类的属性和方法来模拟生活中的这个对象。这样使得程序更容易结构化、抽象起来更方便。
面向对象技术最初是从面向对象的程序设计开始的, 面向对象编程并不困难
它的出现以60年代simula语言为标志。80年代中后期,面向对象程序设计逐渐成熟,被计算机界理解和接受,人们又开始进一步考虑面向对象的开发问题。这就是九十年代以Microsoft Visual系列OOP软件的流行的背景。 传统的结构化分析与设计开发方法是一个线性过程,因此,传统的结构化分析与设计方法要求现实系统的业务管理规范,处理数据齐全,用户能全面完整地其业务需求。 传统的软件结构和设计方法难以适应软件生产自动化的要求,因为它以过程为中心进行功能组合,软件的扩充和复用能力很差。 对象是对现实世界实体的模拟,因面能更容易地理解需求,即使用户和分析者之间具有不同的教育背景和工作特点,也可很好地沟通。 区别面向对象的开发和传统过程的开发的要素有:对象识别和抽象、封装、多态性和继承。 对象(Object)是一个现实实体的抽象,由现实实体的过程或信息牲来定义。一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的外界信号的反应。这些对象操作有时称为方法。对象是个动态的概念,其中的属性反映了对象当前的状态。 类(Class)用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 由上分析不难看出,尽管OOP技术更看中用户的对象模型,但其目的都是以编程为目的的,而不是以用户的信息为中心的,总想把用户的信息纳入到某个用户不感兴趣的“程序对象”中。
㈦ 什么是面向对象编程
面相对象不是某一种语言的特性,而是一种编程思想。 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的模 式,你会发现这种思路的确可以减轻大脑负荷。
㈧ 面向对象编程是什么意思
它是一种编程风格,就是把一切东西看成一个个对象,比如人,车,面包,等等,然后把这些对象拥有的属性变量,比如年龄,民族,工作地点,变质期,寿命,还有操作这些属性变量的函数打包成一个类来表示,这个类的一个抽象就是一个对象,比如人这个类包含一些属性,比如年龄,名字,住址等,他还有一些对别人告诉这些属性的功能,比如:说,看,走等!!这就是的面向对象的特点!!!
㈨ 什么是面向对象的编程语言啊
面向对象语言(Object-Oriented Language)是一类以对象作为基本程序结构单位的程序设计语言。指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。
其特点如下:
(1)任何事物都是对象。
(2)运行期的基本实体,也是一个包括数据和操作这些数据的代码的逻辑实体。
(3)每个对象可以有自己的内存空间包含其他对象。
(4)类是具有相同类型的对象的抽象。一个对象所包含的所有数据和代码可以通过类来构造。
(5)程序由一系列的对象组合,它们通过发送消息告诉彼此做什么。
(6)封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。
(7)一个特定类型的所有对象都可以接受同样的消息。
(8)继承是让某个类型的对象获得另一个类型的对象的特征。
(9)每一个对象都有类型。
(10)多态是指不同事物具有不同表现形式的能力。
注意事项:
Java是一门面向对象编程语言,具有功能强大和简单易用两个特征。
C语言是面向过程的程序设计语言,与C++,Java等面向对象的编程语言有所不同。
VB是一种面向对象的可视化程序设计语言,采取了事件驱动的编程机制。
(9)对象编程扩展阅读:
面向对象编程的优点:
易维护 :可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块。
易扩展 :通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途;
模块化 :封装可以定义对象的属性和方法的访问级别,通过不同的访问修饰符对外暴露安全的接口,防止内部数据在不安全的情况下被修改。
方便建模:很多时候可以使用现实生活中对象的概念抽象后稍作修改来进行建模,极大方便了建模的过程。
㈩ 什么是面向对象的编程方法
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。