黑马程序员技术交流社区
标题: 请描述你所理解的面向对象。 [打印本页]
作者: tanzhiqiu 时间: 2013-7-22 11:05
标题: 请描述你所理解的面向对象。
本帖最后由 杨兴庭 于 2013-7-23 16:42 编辑
面向对象是当今主流的一种程序设计理念和设计规范,它取代了早期的"结构化"过程设计开发技术,主张一切皆为对象,程序以人的思维模式去解决问题。面向对像的程序是由类组成的,每个类包含对用户公开的特定功能部分和隐藏的实现部分。传统的结构化程序设计通过设计一系列的过程(即算法)来求解问题。这一些过程一旦被确定,就要开始考考虑存储数据的方式,这就明确的表述了程序员的工作方式。但面相对像却调换了这个顺序,它不必关心数据对象的具体实现,只要能满足用户的需求即可。面向对象有三个最基本的特性,即:封装,继承,多态。
封装(Encapsulation):使用方法把类的数据隐藏起来,遵循了java 一切皆为对象的基本概念和核心思想,达成对类的封装,让普通类型上升为对象级;封装控制用户对类的修改和访问数据的程度,增强了程序的可维护性。
继承(Implementation):发生在类和类之间,可分为单继承和多层继承描述父子对象之间的血缘关系, 最终达到的目的是:一旦使用了继承,子类便获得了父类所有的成员(变量和方法),但是父类的私有的方法和属性不能被访问,父类的final成员不能被重写。 一旦使用了继承,父类的实例能指向派生类(子类)的引用。
多态(Multipart):对象在运行期和编译期具有的两种状态,使代码具有灵活性和重用性。编译时多态,也就是函数重载,所谓函数重载就是指同一个函数名可以对应多个函数的实现具体调用哪个按照由参数个数,参数类型等来决定。运行时多态:用一个基类的指针或引用来操纵多个派生类型的能力被称为多态性。
这样答行不行
作者: 深圳在漂移 时间: 2013-7-22 11:27
面向对象来源于生活,面向对象的核心是对象,生活中我们是以对象来认识这个世界的,例如,有一个女生向我们走来,我们关注的是这个女生(对象),而不是走的这个动作。关注女生这种思考方式被称为面向对象(JAVA和C++支持这种思想),而关注走这个动作则被称为面向过程(C语言就是支持这种思想)。
作者: xwf4348 时间: 2013-7-22 11:28
首先你需要谈一下面向对象的概念,即面向对象是一种思想,是一种设计理念。面向对象不需要考虑算法的具体实现过程,简化了程序员的开发。
然后你再结合实例谈一下具体的面向对象:比方说电脑是就是一个对象,人则是在面向这个对象。电脑这个对象具有开机,关机等功能。人想要使用这些功能的时候只要调用电脑这个对象就可以了,即电脑.开机;电脑.关机。而不需要了解电脑具体是怎么实现开机关机这两功能的具体实现方法。因为方法已经在对象里面被封装起来了。
然后总结:面向对象使我们由具体的操作者变成了指挥者。要实现一个事情,只需要找到存在实现这个事情功能的对象,然后调用对象.方法就可以了。
作者: jialihong 时间: 2013-7-23 08:22
传统面向过程的程序设计方法从解决问题的每个步骤入手,以具体的解题过程为研究和实现主体。而面向对象是把构成问题的事物分解成各个对象,以需解决的问题中所涉及的各种对象为主体。
面向对象是从实际问题中抽象出封装了数据和操作对象,通过定义属性和操作来表达它们的特性和功能,通过定义接口来描述它们的地位及与其他对象的关系,最终形成一个广泛联系的可理解、可扩充、可维护及更接近于问题本来面目的动态对象模型系统。
作者: liuzhming 时间: 2013-7-23 10:46
在面向对象的世界里,一切都是对象。把各种事物封装成对象,把各种动作和信息封装在对象里,所有东西都在对象里。对象与对象之间通过里面的动作进行交互,它们可以通过各种方式互相联系,构成错综复杂的关系网。就像人一样,人与人之间有父子关系,朋友关系,等各种关系,也有自己的基本信息,如姓名,性别,年龄等。人的一个重要的属性是社会属性,人不可能完全独立生活,必须与人交互,比如教师有自己的工作教书,给学生传授知识,去超市买东西,跟收银员结账等等。每个人是具体的对象,那么我们把它们的共有的特点提取出来,便形成了人这个类。这个类里有姓名,性别,年龄等属性,也有吃饭,睡觉等方法。我们再细化一下,人里面有教师这一种更具体的类,它不仅有人这个类的所有信息,还有所在学校,教授课程,上课等特有的信息,这便形成了教师继承人这个类的关系。对于教授不同课程的教师来说,上课讲授的知识也是不一样的。语文老师上课讲文章,数学老师上课讲公式,这就形成了多态。这是我理解的面向对象。
作者: litaojisuanji 时间: 2013-7-23 12:04
面向对象是当今主流的一种程序设计理念和设计规范,它取代了早期的"结构化"过程设计开发技术,主张一切皆为对象,程序以人的思维模式去解决问题。面向对像的程序是由类组成的,每个类包含对用户公开的特定功能部分和隐藏的实现部分。传统的结构化程序设计通过设计一系列的过程(即算法)来求解问题。这一些过程一旦被确定,就要开始考考虑存储数据的方式,这就明确的表述了程序员的工作方式。但面相对像却调换了这个顺序,它不必关心数据对象的具体实现,只要能满足用户的需求即可。面向对象有三个最基本的特性,即:封装,继承,多态。
封装(Encapsulation):使用方法把类的数据隐藏起来,遵循了java 一切皆为对象的基本概念和核心思想,达成对类的封装,让普通类型上升为对象级;封装控制用户对类的修改和访问数据的程度,增强了程序的可维护性。
继承(Implementation):发生在类和类之间,可分为单继承和多层继承描述父子对象之间的血缘关系, 最终达到的目的是:一旦使用了继承,子类便获得了父类所有的成员(变量和方法),但是父类的私有的方法和属性不能被访问,父类的final成员不能被重写。 一旦使用了继承,父类的实例能指向派生类(子类)的引用。
多态(Multipart):对象在运行期和编译期具有的两种状态,使代码具有灵活性和重用性。编译时多态,也就是函数重载,所谓函数重载就是指同一个函数名可以对应多个函数的实现具体调用哪个按照由参数个数,参数类型等来决定。运行时多态:用一个基类的指针或引用来操纵多个派生类型的能力被称为多态性。
作者: 黑马王晓明 时间: 2013-7-23 21:39
面向其实就是一种思想,解决问题处理问题,将生活中的实际情况放到计算机中去实现
由面向过程演化而来 以前对于过程是执行者 现在对于对象是指挥者 我们要做的事情就是找到对象,指挥对象做事情 没有对象,创造对象,并指挥它做事情
完成飙车的功能,找到赛车,指挥赛车做事情 没有赛车,创造赛车,并指挥赛车做事情
再比如 洗衣服 ,对象就是洗衣机 指挥洗衣机做的事情:定时间,洗涤类型,转速,脱水,甩干……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |