java常见技术面谈题及答案.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java常见技术面谈题及答案

请解释一下你对面向对象的理解,重点解释封装、继承、多态的理解; 面对对象的优点 与人类习惯的思维方法一致 面向对象的软件技术以对象(Object)为核心,用这种技术开发出的软件系统由对象组成。对象是对现实世界实体的正确抽象,它是由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作(表示对象的动态行为),封装在一起所构成的统一体。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。 ????? 面向对象的开发方法与传统的面向过程的方法有本质不同,这种方法的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分过程中都用应用领域的概念去思考。在面向对象的开发方法中,计算机的观点是不重要的,现实世界的模型才是最重要的。面向对象的软件开发过程从始至终都围绕着建立问题领域的对象模型来进行:对问题领域进行自然的分解,确定需要使用的对象和类,建立适当的类等级,在对象之间传递消息实现必要的联系,从而按照人们习惯的思维方式建立起问题领域的模型,模拟客观世界。 软件复用 用已有的零部件装配新的产品,是典型的重用技术,重用是提高生产效率的一个重要方法。面向对象的软件技术在利用可重用的软件成分构造新的软件系统时,体现出较大的灵活性。它可利用两种方法重复使用一个类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。可维护性好 ????? 面向对象的软件技术符合人们习惯的思维方式,因此用这种方法所建立的软件系统容易被维护人员理解,他们可以主要围绕派生类来进行修改、调试工作。类是独立性很强的模块,向类的实例发消息即可运行它,观察它是否能正确地完成要求它作的工作,对类的测试通常比较容易实现,如果发现错误也往往集中在类的内部,比较容易调试。 总之,面向对象技术的优点并不是减少了开发时间,相反,初次使用这种技术开发软件,可能比用传统方法所需时间还稍微长一点。开发人员必须花很大精力去分析对象是什么,每个对象应该承担什么责任,所有这些对象怎样很好地合作以完成预定的目标。这样做换来的好处是,提高了目标系统的可重用性减少了生命周期后续阶段的工作量和可能犯的错误,提高了软件的可维护性。此外,一个设计良好的面向对象系统是易于扩充和修改的,因此能够适应不断增加的新需求。以上这些都是从长远考虑的软件质量指标。 面向对象技术具有3个基本特征。封装、继承、多态。 封装 这是指将一个数据和与这个数据有关的操作集合在一起形成一个能动的实体即对象,用户不必知道对象行为的实现细节,只需根据对象提供的外部接口进行访问对象即可。它有2个基本前提:一是对象必须是完整的能描述整个问题的各个方面,二是私有性,即只具有一些set和get方法进行对象的行为处理,封装使程序语言更加清晰健壮有力。 继承 继承表现的是类与类之间的关系,它是指2个类型具有共同的特性和行为,但是一个类型可能包括比另外一个类型更多的特性,继承则表示基类与派生类之间的相似性,派生类主要继承基类中非私有的特性。继承主要是提供一些表示共性的方法。 3)多态 多态是指相同的行为在不同的类中有不同的实现,更彻底的说,就是以相同的指令 换取不同的函数,在java程序中,多态的实现有2种方式,一是对象的多态,主要是指对象的转型,包括向上转型和向下转型。二是指方法的多态。包括方法的重载和复写,方法的重载是指方法具有相同的方法名,但参数的类型,顺序或个数不同,对返回值类型不做限制,方法的重载主要是解决java程序中命名空间的问题,方法的复写,只要发生在父类和子类之间,子方法必须和父方法形式上完全相同,但访问权限不得小于父类的访问权限。 应用案例 继承的案例:在我的几个项目中,都使用到了面向对象的基本特性。比如项目使用的SSH框架技术,就是面向对象的很好体现,例如Struts,我们自己写的Action类都必须继承Action这个基类,还有那些负责数据传递的ActioForm也必须继承Struts框架中的ActionForm这个基类等等,这些都是继承的体现 封装的案例:我们所写的那些POJO类中主要是用来进行数据的封装和传递,这体现了封装;多态在struts中也得到很好的体现,比如说我们在Action中进行业务处理时要调用的execute方法,就是对Struts中execute方法的复写, 多态的案例:另外在接受数据时,所作的ActionForm 的转换则是进行对象的向下转型,这些体现了面向对象的多态性。 请说一下你的抽象类的理解,包括抽象类的好处,抽象类的语法,抽象类的使用案例; 抽象类的好处 抽象类往往用来表征我们在对问题领域进行分析、 设计中得出的抽象概念,是对一系

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档