怎么通俗理解面向对象,在程序开发中常常说到面向对象到底应该怎样理解面向对象呢

1 , 在程序开发中常常说到面向对象到底应该怎样理解面向对象呢我觉得在编程的过程中认真的去理解和运用JOF的23中设计模式,能更好的理解面向对象~~~对象指现实中具体的实物编程中需要拥有现实中看待事物的思维去思考这样更有助于理解和实现通俗的来说,就是把现实的思维方式放到编程中去
2,如何通俗易懂的解释面向对象编程思想真正的面向对象编程思想就是忘掉一切关于计算机的东西,从问题领域考虑问题. 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),直到无法再细; 2、对每个对象(小问题)进行分析 , 抽象,提取处共同的内容(数据成员和操作方法)现在有一个聊天软件,当用户打开好友栏会出现好友或者发送键可以发送信息等,都是本软件的表面动作,它内部有运行的过程,面相过程编程就是直接对软件内部如何运行来编程的 , 但是我们发现,面相过程的语言太难学了 , 而且在编程的过程中稍有逻辑错误就会无法运行,即使找错也显得困难,更何况培养一名牛逼的面相过程设计师需要8年以上,那我们能不能设计种语言,改善上述问题呢?于是出现了面相对象编程 , 我们只需要编写出软件表面需要做的,让面相对象语言自己生成内部的运作过程
3,什么是面向对象面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流 。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围 。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域 。谈到面向对象,这方面的文章非常多 。但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现 。其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法 。可是,这个定义显然不能再适合现在情况 。面向对象的思想已经涉及到软件开发的各个方面 。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming) 。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法 。看这些文章只有真正懂得什么是对象,什么是面向对象 , 才能最大程度地对自己有所裨益 。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清 。面向对象是当前计算机界关心的重点,它是90年代软件开发方法的主流 。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围 。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域 。面向对象(Object Oriented,简称OO)是当前计算机界关心的重点,面向对象的语言必须包含继承 多态重载【怎么通俗理解面向对象,在程序开发中常常说到面向对象到底应该怎样理解面向对象呢】
4,什么是面向对象面向对象:是新一代高级语言的核心思想简单的说:万物皆对象(一个人,一个物体..) 。面向对象 就是编程对象是对象,而不像已过时的编程语言,他们是面向过程 。。。想知道详细的去百度搜封装:为了源代码的保密性,与方便团队的制作简单的说,就是把它分成类,包 。。建议去Java论坛上看看 , 学习是一步一步来的要一步一步的了解,如果你要是想一下子都看懂这些,绝对会糊涂 。劝导: 多编写代码,如,骑士飞行器,计算器要用类来编写大致的上面讲过了 , 我细的:1.抽象:抽象是指从特定的角度出发,从已经存在的一些事物中抽取我们所关注的特征,形成一个新的事物的思维过程 。面向对象开发过程中 , 抽象体现在以下方面:对象模型中的父类^| (从具有相同属性和行为的类中抽象出父类)对象模型中的类^| (把具有相同属性和行为的对象抽象为类)对象模型中的对象^| (抽取与问题领域相关的事物的属性和行为,抽象为对象)问题领域的事物在Java语言中,抽象有两种意思:·当抽象作为动词时,就是指上述的抽象思维过程 。·当抽象作为形容词时,可以用来修饰类和成员方法 。被abstract修饰的方法只用来描述系统具有什么功能 , 但不提供具体的实现;被abstract修饰类不能被实例化 。2.继承:在父类和子类之间同时存在着继承和扩展关系 。子类继承父类的属性和方法,同时子类中还可以扩展出新的属性和方法,并且还可以覆盖父类中的方法的实现方式 。继承与扩展同时提高了系统的可重用性和可扩展性 。3.封装:封装是指隐藏对象的属性和实现细节 , 仅仅对外公开接口 。4.多态性:多态是指当系统A访问系统B的服务时,系统B可以通过多种实现方式来提供服务,而这一切对系统A是透明的 。5,面向对象的概念特点是什么1.编程模型 所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的. 第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码.如 C 等过程化语言. 第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处. 2.抽象 面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性. 管理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,DVD-ROM,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性. 面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应. /* (我的理解) *计算机是一个实体,我要输入字符,显示器显示出来,那么 *计算机(对象).输入(键盘属性).显示(显示方法) *使用分层来引用,操作.而不用管计算机内部如何处理. *只要有计算机对象,它就能响应我的操作,而我敲键盘, *计算机对象就把这个消息传给屏幕,屏幕显示. */ 计算机对象包含了它所有的属性,以及操作,这就是面向对象程序设计的三大原则之一:封装. 3.封装 封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用. 在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例. 在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义. 由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情. 4.继承 继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性. 继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用. 5.多态 多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用. 6.封装,继承,多态的组合使用 在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车 从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置. 从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响. 从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁). 这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序

    推荐阅读