java习题及答案第5章 习题参考答案

发布时间:2023-01-19 03:40:29   来源:文档文库   
字号:
5习题解答
1.使用抽象和封装有哪些好处?
答:抽象是人们解决问题的基本手段,程序设计过程中需要对问题领域进行分析、设计中得出的抽象概念,然后封装成一些类。封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数访问该对象。把对象中相同或相似地地方抽象出来,从特殊到一半,从具体到抽象的过程,对象经过抽象得到类,类的实例化成了对象。也可以高度抽象成接口,让不完全相同,但包含相同点的对象实现此接口,也就是利用多态实现。把相同点抽象出来,抽象成此类或接口的方法、属性、字段等,封装就是隐藏某个对象的与其基本特性没有很大关系的所有详细信息的过程,就是将需要让其他类知道的暴露出来,不需要让其他类了解的全部隐藏起来,封装可以阻止对不需要信息的访问,我们可以使用访问指定符实现封装,也可以使用方法实现封装,可以将隐藏的信息作为参数或者属性值、字段指传给公共的接口或方法,以实现隐藏起来的信息和公开信息的交互。封装的目的就是为了实现“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉,就是这个类只完成自己的功能,不需要外部参与;低耦合,就是仅暴露很少的方法给外部使用。2.构造方法的作用是什么?它与一般的成员方法在使用和定义方面有什么区别?
答:构造方法用于生成一个对象实例,并对对象实例中的成员变量初始化。当用new创建一个类的新的对象时,构造方法立即执行。构造方法名字必须与类名相同。3.OverloadOverride的区别?答:方法重载(overloading)与方法覆盖(overriding)是实现多态性的基本手段,但两者的机制不同。方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数不相同。参数不同具体体现为:或者参数的个数不相同,或者是参数的类型不同。方法覆盖(overriding)是指子类的方法名与父类的方法名完全相同,并且返回值类型、入口参数的数目、类型均相同,即在子类中重新改写了父类的同名方法。Java根据实际参数的个数和类型来选择调用合适的方法,这样就能使用相同的方法名实现不同的功能,体现了多态性。
4.类、类的成员变量和成员方法的访问权限修饰符分别有哪些?
答:Java提供publicprotectedprivate、默认等4种访问控制符,在类、成员变量、成员方法的前面可以使用访问控制符关键字,没有显式使用的均为默认控制类型。Java语言提供的访问权限控制符的访问权限如表5-1
5-1Java语言提供的访问权限控制符

1
private默认protectedpublic
本类
本包
不同包中的子类

不同包中的所有类

5.thissuper关键字有何用途?
答:子类在继承父类时,可能会出现变量隐藏、方法覆盖(overriding)等现象。变量隐藏指子类的成员变量与父类成员同名,此时,父类的成员变量被隐藏。方法覆盖指子类的方法与父类的方法名相同,方法的返回值类型、入口参数的数目、类型、顺序均相同,只是方法实现的功能不同,此时父类的方法被覆盖。如果子类需要调用或访问父类被隐藏的变量或被覆盖的方法,可以使用super关键字实现。Java提供关键字super来实现对父类的成员和方法的访问。Super有三种情况可以使用:
用来访问父类中被覆盖的方法;用来访问父类中被隐藏的成员变量;用来调用父类中的构造方法。
关键字this可以出现在类的构造方法和非static修饰的成员方法(即实例方法)中,代表实例对象自身,有以下几种使用情况:
1)在类的成员方法中,可以通过this来访问实例对象的成员变量或调用成员方法。2)在类的成员方法中,区分成员变量和局部变量;3)在类的成员方法中,使用this返回实例对象本身的引用;4)在类的构造方法中,使用this调用该类的其他构造方法。6.JAVA实现多态的机制有哪些?
答:多态性包含编译时的多态性、运行时的多态性两大类,即:多态性也分静态多态性和动态多态性两种。静态多态性是指定义在一个类或一个函数中的同名函数,它们根据参数表(类型以及个数)区别语义,。动态多态性是指定义在一个类层次的不同类中的重载函数,它们一般具有相同的函数,因此要根据指针指向的对象所在类来区别语义,它通过动态联编实现。Java从多个方面支持多态性,一方面可以通过方法重载实现多态,另一方面也可以通过继承过程中出现的方法覆盖以及对象类型转换(父类引用指向子类对象)实现。方法重载(overloading)与方法覆盖(overriding)是实现多态性的基本手段。7.什么是类变量和类方法?
答:static可以用来修饰类的成员变量或成员方法,分别称为类变量(或静态变量)和类方法(或静态方法)。相应地,没有被static修饰的类的成员变量或成员方法称为实例变量或实例方法。

2

本文来源:https://www.2haoxitong.net/k/doc/75eadd9c89d63186bceb19e8b8f67c1cfad6eed8.html

《java习题及答案第5章 习题参考答案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式