ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:21.37KB ,
资源ID:12051915      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12051915.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java认证 习题 第02章 有答案版 OK该试题还有第0103章.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java认证 习题 第02章 有答案版 OK该试题还有第0103章.docx

1、java认证 习题 第02章 有答案版 OK 该试题还有第0103章SCJP 5.0 习题 第02章一、重写和重载 1二、封装、IS-A HAS-A 5四、第二章课后习题 7一、重写和重载问题 1)假设有如下类定义,如下哪些方法可以合法放置在“/Here”的注释之后?public class Rid public void amethod (int i, String s) / Here1) public void amethod (String s, int i) 2) public int amethod (int i, String s) 3) public void amethod (

2、int i, String mystring) 4) public void Amethod (int i, String s) 答案:1和4Amethod 中的大写字母A 意味着这是不同的方法。问题 2)假设有如下类定义,哪些代码可以被合法放置在注释“/Here”之后?class Base public Base (int i) public class MyOver extends Base public static void main (String arg ) MyOver m = new MyOver (10);MyOver (int i) super (i);MyOver (St

3、ring s, int i) this (i);/Here1) MyOver m = new MyOver ():2) super ();3) this (“Hello”, 10);4) Base b = new Base (10);答案:4任何this 或super 的调用都必须是构造函数中的第一行。由于方法已经调用了this,不能有别的调用插入了。问题 3)假设有如下类定义class Mammal Mammal () System.out.println (“Mamml”);class Dog extends Mammal Dog () System.out.println (“Dog”)

4、;public class Collie extends Dog public static void main (String argv ) Collie c = new Collie ();Collie () this (“Good Dog”);System.out.println (“Collie”);Collie (String s) System.out.println (s);将会输出什么?1) Compile time error2) Mammal, Dog, Good Dog, Collie3) Good Dog, Collie, Dog, Mammal4) Good Dog,

5、 Collie答案:2) Mammal, Dog, Good Dog, Collie问题 4)下面哪些论述是正确的?1) 构造方法不能被继承2) 构造方法可以被重写;重写不是重载.3) 父类的构造方法可以使用this调用4) 任何方法都可以调用this和super答案:1问题 5)试图编译并运行下面代码会发生什么?class Base public void amethod (int i, String s) System.out.println (“Base amethod”);Base () System.out.println (“Base Constructor”);public cl

6、ass Child extends Base int i;String Parm = “Hello”;public static void main (String argv ) Child c = new Child ();c.amethod ();void amethod (int i, String Parm) super.amethod (i, Parm);public void amethod () 1) 编译错误2) 错误,super.amethod (i, Parm)语法不正确3) 输出 “Base Constructor”4) 错误,super.amethod的参数名字不正确答

7、案:1这会导致一个错误,意思是说“你不能重写方法使其访问权限更靠近私有”。基类的amethod版本被明确的标注为public,但是在子类中没有标识符。好了,所以这不是在考察你的构造函数重载的知识,但是他们也没在考试中告诉你主题。若这段代码没有省略关键字public,将会输出“Base constructor”,选项3。问题 6)试图编译并运行如下代码时将发生什么?class Mammal Mammal () System.out.println (“Four”);public void ears () System.out.println (“Two”);class Dog extends M

8、ammal Dog () super.ears ();System.out.println (“Three”);public class Scottie extends Dog public static void main (String argv ) System.out.println (“One”);Scottie h = new Scottie ();1) One, Three, Two, Four2) One, Four, Three, Two3) One, Four, Two, Three4) Compile time error答案:3)One, Four, Two, Thre

9、e类是从层次的根部往下创建的。因此,首先输出One,因为它在Scottie h 初始化之前创建。然后,JVM 移动到层次的基类,运行“祖父类”Mammal 的构造函数。这会输出“Four”。然后,运行Dog 的构造函数。Dog 的构造函数调用Mammal 中的ears 方法,因此输出“Two”。最后,Dog 的构造函数完成,输出“Three”。问题7)给定下面的类定义public class Uptonpublic static void main(String argv)public void amethod(int i)/Here下面哪一个在替换/Here 后是合法的?1) public

10、int amethod(int z)2) public int amethod(int i,int j)return 99;3) protected void amethod(long l) 4) private void anothermethod()答案:2、3和4选项1 由于两个原因不会被编译。第一个相当明显,因为它要求返回一个integer。另一个是试着直接在类内部重新定义一个方法。把参数的名字从i 换成z 是无效的,并且一个方法不能在同一个类里重写。问题8)给定下面的类定义class Basepublic void amethod()System.out.println(Base);

11、public class Hay extends Basepublic static void main(String argv)Hay h = new Hay();h.amethod();下面在类Hay 中的哪一个方法将会编译并使程序打印出字符串Hay?1) public int amethod() System.out.println(Hay);2) public void amethod(long l) System.out.println(Hay);3) public void amethod() System.out.println(Hay);4) public void ameth

12、od(void) System.out.println(Hay);答案:3) public void amethod() System.out.println(Hay);选项3 重写了类Base 的方法,因此任何无参数调用都调用这个版本。选项1 修改方法的返回值类型。选项2 将会编译,结果是调用父类中的方法问题9)给定下面的类定义public class ShrubHillpublic void foregate(String sName)/Here下面的哪一个方法可以合法的直接替换/Here?1) public int foregate(String sName)2) public void

13、 foregate(StringBuffer sName)3) public void foreGate(String sName)4) private void foregate(String sType)答案9)2) public void foregate(StringBuffer sName)3) public void foreGate(String sName)选项1 是试着定义一个方法两次,有一个int 返回值并不能帮助将它与存在的foregate 方法相区分。而像选项4 那样改变方法的参数名,也不能与存在的方法相区分。注意,选项3里的foreGate 方法有一个大写的G。二、封

14、装、IS-A HAS-A问题1)假设你被给予如下设计“一个人有姓名,年龄,地址和性别。你将要设计一个类来表示一类叫做病人的人。这种人可以被给予诊断,有配偶并且可能活着”。假设表示人的类已经创建了,当你设计病人类时如下哪些应该被包含在内?1) registration date2) age3) sex4) diagnosis答案1)1) registration date2) diagnosis对于病人来说,注册日期是一个合理的添加域,并且设计明确地指出病人应该有诊断报告。由于病人是人的一种,它应该有域age 和sex(假设它们没有被声明为私有的)。问题 2)当你试图编译并运行如下代码时会发生什

15、么?class Base int i = 99;public void amethod () System.out.println (“Base.amethod ()”);Base () amethod ();public class RType extends Base int i = -1;public static void main (String argv ) Base b = new RType ();System.out.println (b.i);b.amethod ();public void amethod () System.out.println (“RType.ame

16、thod ()”);1)RType.amethod-1RType.amethod2)RType.amethod99RType.amethod3)99RType.amethod4)Compile time error答案:2)RType.amethod99RType.amethod如果这个答案看起来靠不住,试着编译并运行代码。原因是这段代码创建了一个RType 类的实例但是把它赋予一个指向Base 类的引用。在这种情况下,涉及的任何域,比如i,都会指向Base 类中的值,但是方法的调用将会指向实际类中的方法而不是引用句柄中的方法。问题 3)你的首席软件设计者向你展示了她正要创建的新电脑部件系统的

17、草图。在层次结构的顶端是一个叫做Computer 的类,在此之下是两个子类。一个叫做LinuxPC,另一个叫做WindowsPC。两者之间最大的不同点是一个运行Linux 操作系统,另一个运行Windows系统(当然另一个不同在于一个需要不停的重启,另一个则能够可靠的运行)。在WindowsPC 之下是两个子类,一个叫做Server,另一个叫做Workstation。你如何评价你的设计者的工作?1) 使用现在的模式继续做进一步的设计2) 让他重新设计,把操作系统设计为一个成员变量而不是1个类。3) 把WindowsPC去掉,因为很快就会抛弃4) 改变继承结构,删除多余Computer类。答案:

18、2?问题 4)假设有如下类class Base int Age = 33;关于对Age 域的访问,你会如何修改来改进这个类?1)把变量Age定义为private2)把变量Age定义为protected3)把变量Age定义为private,然后提供get方法获取值,set方法更新值。4)把变量Age定义为protected,然后提供get方法获取值,set方法更新值。答案:3问题 5)下面哪些是封装的好处?1) 所有的变量都被封装成对象而不是基本数据类型2) 让所有的变量都被保护起来,以防止意外损坏3) 可以改变类的实现而不影响使用这个类的代码4) 使所有方法都受到保护,防止意外的数据损坏答案:

19、3问题 6)指出三个面向对象编程的主要特点?1) 封装、动态绑定、多态2) 多态、重载、过载3) 封装、继承、动态绑定4) 封装、继承、多态答案:4问题 7)你如何在类中实现封装?1) 让所有变量都是protected,只能通过方法访问2) 让所有变量都是private,只能通过方法访问3) 保证所有的变量都表示成封装类型4) 保证所有的变量都是通过祖先类中的方法访问答案:2四、第二章课后习题1. 哪个语句正确? (可以多选)A. Has-a关系依赖继承B. Has-a关系依赖实例变量C. Has-a关系至少需要两个类D. Has-a关系依赖多态E. Has-a关系总是导致紧耦合正确: B 错

20、误:C 可以类自己的实例作为成员变量,例如表示夫妻关系2. 已知:class Clidders public final void flipper() System.out.println(Clidder); public class Clidlets extends Clidders public void flipper() System.out.println(Flip a Clidlet);super.flipper();public static void main(String args) new Clidlets().flipper();会有什么结果?A. Flip a Clid

21、letB. Flip a ClidderC. Flip a ClidderFlip a ClidletD. Flip a ClidletFlip a ClidderE. 编译失败正确: E 3. 已知:public abstract interface Frobnicate public void twiddle(String s); 哪个类正确?可以多选A. public abstract class Frob implements Frobnicate public abstract void twiddle(String s) B. public abstract class Frob

22、implements Frobnicate C. public class Frob extends Frobnicate public void twiddle(Integer i) D. public class Frob implements Frobnicate public void twiddle(Integer i) E. public class Frob implements Frobnicate public void twiddle(String i) public void twiddle(Integer s) 正确: B和E 4. 已知:class Top publi

23、c Top(String s) System.out.print(B); public class Bottom2 extends Top public Bottom2(String s) System.out.print(D); public static void main(String args) new Bottom2(C);System.out.println( );What is the result?A. BDB. DBC. BDCD. DBCE. 编译失败正确: E5. 选择两个最能描述低耦合的语句A. 类的属性都是私有的B. 类中引用了少量的其他对象C. 对象只有少量的成员变

24、量D. 通过匿名变量引用对象E. 引用变量声明为接口类型,而不是一个类,接口提供了少量的方法。F. 对一个类的修改不会引起另一个累的任何变化。正确: E 和F。6. 已知:class Clidder private final void flipper() System.out.println(Clidder); public class Clidlet extends Clidder public final void flipper() System.out.println(Clidlet); public static void main(String args) new Clidlet

25、().flipper();结果是?A. ClidletB. ClidderC. ClidderClidletD. ClidletClidderE. 编译失败正确: A 父类的final方法是private类型。子类中定义的方法相当于新方法,不是多态。7. 使用下面的代码块,完成下面的代码,可以不用完全填满。Note, you may not have to fill all of the slots.Code:class AgedP _ AgedP() ;_ _ _ _ _public AgedP(int x) _ _ _ _ _public class Kinder extends Aged

26、P _ _ _ _ _ _public Kinder(int x) _super_ _ _ _ _ ();代码块:下面的代码块可以使用多次或者不使用。AgedP super this( ) ;答案:class AgedP AgedP() ;public AgedP(int x) public class Kinder extends AgedP public Kinder(int x) super();As there is no droppable tile for the variable x and the parentheses (in the Kinder constructor),

27、 are already in place and empty, there is no way to construct a call to the superclass constructor that takes an argument. Therefore, the only remaining possibility is to create a call to the no-argument superclass constructor. This is done as: super();. The line cannot be left blank, as the parenth

28、eses are already in place. Further, since the superclass constructor called is the no-argument version, this constructor must be created. It will not be created by the compiler because there is another constructor already present.(Objective 5.4)8. Given:1. class Plant 2. String getName() return plant; 3. Plant getType() return this; 4. 5. class Flower extends Plant 6. / insert code here7. 8. class Tulip extends Flower Which statement(s), inserted at line 6, will compile? (Choose all that apply.)A. Flower getType() return

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1