面向对象的理解

sunhongxiang 2008-12-04 09:33:22
在很多次面试的时候,面试的考官都要问:你对面向对象的理解。对这一问题该如何回答啊。
...全文
5252 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Casper_1990 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
我的思路是:
回答时从面向对象的三大特征回答。(下面引用网上朋友整理)

包括三个特征:继承、封装、多态。

类的继承性是指从已有的一个类来extends子类,子类具有了父类的所有特征,同时,子类也可以有新的特性。比如:人是一个类,男人具有了人类的所有的特性,比如思考,比如劳动。同时,男人也有新的特性,比如男人会长胡子。

类的封装是指类把所有的操作都封闭起来,仅仅提供接口出来让……
[/Quote]威武
ningyougang 2008-12-08
  • 打赏
  • 举报
回复
嘿嘿,我也来说两句
可以先从面向过程来说起,我们在大学的时候学了c语言,一种面向过程的语言实现,在思考问题的时候,着重强烈解决问题的步骤。
而面向对象语言的实现,包括java,.net ,vb,现在php也有了一定程度的支持,甚至javascript,其思考问题的方式不是传统的步骤解决问题的步骤,而是先构造对象,比如妈妈做饭,其可以构造妈妈这个对象,有mother,这个私有属性,和 doCookie()这个做饭方法。

面向对象的理解,个人认为分为<1>代码级的面向对像,在这里可以用面向对象的3个基本概念来回答,比如封装(封装的理解个人认为主要有两个方面,1是可以在访问之前做数据权限控制,2另外default,protect,public也是一种封装,并且权限的公开要特别小心,因为越是公有就越危险,任何公开的属性或方法对使用这个方法、属性、类的人(客户)都是一种承诺,不可轻易变动),继承是让子类继承父类的方法或属性,子类与父类是一种is的关系(在这里可以讲讲委托,因为java是单继承(c++是多继承),在使用的时候尽量使用委托,如何区分使用继承和委托,最基本的判断标准是继承是is的关系,而委托是has的关系),多态是java程序在动态运行期间的一种表现行为,配合java的反射机制可以很好设计出很有优秀的程序,比如调度程序等.
<2>系统分层甚至更高的架构级的面向对象,如果说代码级的面向对象是一种细粒度的面向对象,那么系统分层甚至更高的架构级的面向对象则是一种粗粒度的面向对象,现在我们有了很多的框架,比如展示层的struts,jsf等,持久层框架hiberate等,他们都负责自己这一层所做的事情,业务逻辑你就负责业务逻辑,DAO你就负责数据访问,不要业务逻辑里面有数据库访问的代码,所以这要就action层调用service,action里不要出现什么if之类的判断(当然一点当不出现,可能不太可能,自己心理要有数),servcie调用dao,所以spring框架就出来了,负责这类的事情,并且提出很多优良的理念.在比如大家都知道现在增值业务市场竞争激烈,为了业务的新需求,中国移动不得不对自己的系统进行改良,我看过很多移动公司很多的系统架构设计,所以可以很清晰的看到,每次改良基本上是将原来好多的功能抽取出来单独弄出来,放到另外一个模块。这个模块你就负责这一块的功能,不是你的工作,就交给其他模块.
嘿嘿...............
CSH_Hai 2008-12-04
  • 打赏
  • 举报
回复
楼上的说的好好....
  • 打赏
  • 举报
回复
我的思路是:
回答时从面向对象的三大特征回答。(下面引用网上朋友整理)

包括三个特征:继承、封装、多态。

类的继承性是指从已有的一个类来extends子类,子类具有了父类的所有特征,同时,子类也可以有新的特性。比如:人是一个类,男人具有了人类的所有的特性,比如思考,比如劳动。同时,男人也有新的特性,比如男人会长胡子。

类的封装是指类把所有的操作都封闭起来,仅仅提供接口出来让其他人使用,使用的人没有必要懂得类里面的操作,只需要懂得操作接口就可以了。比如开汽车,我们只需要懂得方向盘、刹车、油门等等的使用就可以了,没有必要知道刹车是如何构成的封闭好的操作。同时,封装也提高了程序的可替换性。比如两个汽车公司实现刹车的方式不一样,但是,只要我们学会了使用刹车,那么,开两个汽车公司的车就都没有问题了,我们不需要考虑他们怎样实现刹车这门技术的。

类的多态性是一个对象的某项功能可以处理不同类型的问题,或者一个子类可以将父类的某个功能替换成新的功能,具体到编程的方面来说实现类的多态有override和overload,也就是覆写和重载。

同时面向对象还有一个很重要的概念:抽象。抽象就是一个事物的本质。当然对于本质,不同的角度却会有不同的理解。男人,在和女人一起的时候,它的本质是人。在和所有的生物一起的时候,它的本质是动物。(虽然哲学家都说事物的本质只有一个,但是,我仍然坚持我的观点)


第1章课程定位与教学案例综述. 1.1职业岗位能力需求分析 1.2课程设置和课程定位分析 1.3WebShop电子商城介绍 1.3.1电子商城需求分析 1.3.2电子商城系统设计 1.3.3电子商城数据库设计 1.4LibraryMIS图书管理系统介绍 1.4.1图书管理系统需求分析 1.4.2图书管理系统系统设计 1.4.3图书管理系统数据库设计 习题 第2章面向对象技术和建模基础 2.1面向对象方法 2.1.1面向对象方法的基本思想 2.1.2面向对象方法的发展 2.2面向对象的基本概念与特征 2.2.1面向对象的基本概念 2.2.2面向对象的主要特征 2.3面向对象分析 .2.3.1处理复杂问题的原则 2.3.200A方法的基本步骤 2.4面向对象设计 2.5面向对象实现 2.6面向对象方法的内涵 2.7软件建模概述 2.7.1软件建模的概念 2.7.2软件建模的用途 2.7.3软件建模的优点 习题 第3章UML简介 3.1UML的发展 3.1.1UML的发展历程 3.1.2理解UML建模 3.2UML的特点 3.3UML的结构 3.3.1UML的事物 3.3.2UML的关系 3.4UML的视图 3.4.1用例视图 3.4.2逻辑视图 3.4.3并发视图 3.4.4组件视图 3.4.5部署视图 3.5UML图形符号 3.5.1用例图 3.5.2类图 3.5.3对象图 3.5.4状态图 3.5.5活动图 3.5.6顺序图 3.5.7协作图 3.5.8组件图 3.5.9部署图 3.5.10UML 2.0新特性 3.6UML建模基本流程 习题 第4章UML建模工具简介 4.1常用UML建模工具 4.1.1 Rational Rose 4.1.2Enterprise Architect 4.1.3Together 4.1.4PowerDesigner 4.1.5 Visi0 4.1.6Tnffun Plat0 4.2Rational Rose安装与配置 4.2.1Rational Rose的运行环境 4.2.2Rational Rose的安装 4.2.3Rational Rose的配置 4.3使用Rational Rose建模 4.3.1Rational Rose主菜单 4.3.2Rational Rose的视图 4.3.3 Rational Rose建模的基本过程 习题 第5章需求建模 5.1用例模型概述 5.2用例图组成 5.2.1参与者 5.2.2系统 5.2.3用例 5.3识别和描述用例.. 5.3.1识别用例 5.3.2绘制WebShop电子商城用例图 5.3.3通过包对用例进行合理规划 5.3.4WebShop电子商城用例图(不含关系) 5.3.5用例描述 5.4用例间的关系 5.4.1泛化关系 5.4.2使用关系 5.4.3包含关系 5.4.4扩展关系 5.4.5关系小结 5.4.6WebShop电子商城用例图(含关系) 习题 第6章静态建模 6.1静态建模概述 6.2类图概述 6.3类图的基本组成 6.3.1类的概述 6.3.2绘制带属性的实体类 6.3.3绘制带操作的实体类 6.3.4绘制边界类图 6.3.5绘制控制类图 6.3.6UML中的类与语言中的类 6.4类之间的关系 6.4.1关联关系 6.4.2聚合关系 6.4.3组合关系 6.4.4泛化关系 6.4.5实现关系 6.4.6依赖关系 6.5对象图 6.5.1对象图概述 6.5.2对象图组成 6.5.3类图和对象图的比较 习题 第7章数据库建模 7.1PowerDesigner简介 7.2PowerDesigner安装和启动 7.2.1PowerDesigner的安装 7.2.2PowerDesigner的启动 7.3PowerDesigner概念数据模型 7.3.1概念数据模型概述 7.3.2PowerDesigner概念数据模型概述 7.4 PowerDesigner物理数据模型 习题 第8章动态建模 8.1动态建模概述 8.2状态图 8.2.1状态图概述 8.2.2状态图组成 8.2.3绘制员工下班回家状态图 8.3活动图 8.3.1活动图概述 8.3.2活动图组成 8.3.3绘制WebShop电子商城活动图 8.4活动图拾遗 8.4.1活动图与流程图的比较 8.4.2活动图与状态图的比较 8.5顺序图 8.5.1顺序图概述 8.5.2顺序图组成 8.5.3绘制WebShop电子商城顺序图 8.6协作图 8.6.1协作图概述 8.6.2协作图组成 8.6.3绘制WebShop电子商城协作图 8.7 顺序图拾遗 8.7.1 顺序图与协作图的比较 8.7.2 顺序图与协作图的互换 习题 第9章物理建模 9.1物理建模概述 9.1.1硬件 9.1.2软件 9.2组件图 9.2.1组件图概述 9.2.2组件图组成 9.2.3绘制WebShop电子商城组件图 9.3部署图 9.3.1部署图概述 9.3.2部署图组成 9.3.3绘制WebShop电子商城部署图 习题 第10章双向工程 10.1双向工程简介 10.2正向工程(生成Java代码) 10.3逆向工程 习题 第11章统一软件过程RUP 11.1RUP简介 11.2RUPT作流程 11.2.1业务建模 11.2.2需求 11.2.3分析设计 11.2.4实施 11.2.5测试 11.2.6部署 11.2.7配置与变更管理 11.2.8项目管理 11.2.9环境 11.3RUP迭代过程 11.3.1初始 11.3.2细化 11.3.3构造 11.3.4移交 11.3.5迭代计划示例(构造阶段) 习题 附录A综合实训 附录B Rational Rose2003主菜单 参考文献...

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧