- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第5章习题解答
1.使用抽象和封装有哪些好处?
答:
抽象是人们解决问题的基本手段,程序设计过程中需要对问题领域进行分析、设计中得出的抽象概
念,然后封装成一些类。封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在
一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细
节,只保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操
作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据
对象提供的外部接口(对象名和参数)访问该对象。把对象中相同或相似地地方抽象出来,从特殊到一半,
从具体到抽象的过程,对象经过抽象得到类,类的实例化成了对象。也可以高度抽象成接口,让不完全
相同,但包含相同点的对象实现此接口,也就是利用多态实现。把相同点抽象出来,抽象成此类或接口
的方法、属性、字段等,封装就是隐藏某个对象的与其基本特性没有很大关系的所有详细信息的过程,
就是将需要让其他类知道的暴露出来,不需要让其他类了解的全部隐藏起来,封装可以阻止对不需要信
息的访问,我们可以使用访问指定符实现封装,也可以使用方法实现封装,可以将隐藏的信息作为参数
或者属性值、字段指传给公共的接口或方法,以实现隐藏起来的信息和公开信息的交互。封装的目的就
是为了实现“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉,就是这
个类只完成自己的功能,不需要外部参与;低耦合,就是仅暴露很少的方法给外部使用。
2.构造方法的作用是什么?它与一般的成员方法在使用和定义方面有什么区别?
答:构造方法用于生成一个对象实例,并对对象实例中的成员变量初始化。当用new创建一个类的新
的对象时,构造方法立即执行。构造方法名字必须与类名相同。
3.Overload和Override的区别?
答:方法重载(overloading)与方法覆盖(overriding)是实现多态性的基本手段,但两者的机制不同。
方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数不相同。参数不同具体体现
为:或者参数的个数不相同,或者是参数的类型不同。方法覆盖(overriding)是指子类的方法名与父类
的方法名完全相同,并且返回值类型、入口参数的数目、类型均相同,即在子类中重新改写了父类的同
名方法。Java根据实际参数的个数和类型来选择调用合适的方法,这样就能使用相同的方法名实现不同
的功能,体现了多态性。
4.类、类的成员变量和成员方法的访问权限修饰符分别有哪些?
答:Java提供public、protected、private、默认等4种访问控制符,在类、成员变量、成员方法的前面
可以使用访问控制符关键字,没有显式使用的均为默认控制类型。Java语言提供的访问权限控制符的访
问权限如表5-1。
表5-1Java语言提供的访问权限控制符
1
本类本包不同包中的子类不同包中的所有类
private√
默认√√
protected√√√
public√√√√
5.this、super关键字有何用途?
答:子类在继承父类时,可能会出现变量隐藏、方法覆盖(overriding)等现象。变量隐藏指子类的成
员变量与父类成员同名,此时,父类的成员变量被隐藏。方法覆盖指子类的方法与父类的方法名相同,方法
的返回值类型、入口参数的数目、类型、顺序均相同,只是方法实现的功能不同,此时父类的方法被覆盖。
如果子类需要调用或访问父类被隐藏的变量或被覆盖的方法,可以使用super关键字实现。Java提供关键字
super来实现对父类的成员和方法的访问。Super有三种情况可以使用:
⑴用来访问父类中被覆盖的方法;
⑵用来访问父类中被隐藏的成员变量;
⑶用来调用父类中的构造方法。
关
文档评论(0)