自考Java语言程序设计(一)第五章以后课后习题及答案.docx_第1页
自考Java语言程序设计(一)第五章以后课后习题及答案.docx_第2页
自考Java语言程序设计(一)第五章以后课后习题及答案.docx_第3页
自考Java语言程序设计(一)第五章以后课后习题及答案.docx_第4页
自考Java语言程序设计(一)第五章以后课后习题及答案.docx_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.自考Java语言程序设计(一)第五张课后习题及答案自考Java语言程序设计(一)第五章类的继承课后习题五、类的继承l什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来什么好处?什么是单重继承?什么是多重继承?2观察下面的程序片断,指出其中的父类和子类,以及父类和子类的各个域和方法。class SuperClassint data;voidsetData(intnewData)data=newDataintgetData()return dataclass SubClass extends SuperClassint suhData;void setSubData(intnewData)suhData=new Data;intgetData()return subData;3“子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否正确?为什么?4. 在Java程序中,通过类的定义只能实现单重继承()5.下列哪些说法是正确的?A、 Java 语言只允许单一继承B、 Java 语言只允许实现一个接口C、 Java 语言不允许同时继承一个类并实现一个接口D、 Java 语言的单一继承使得代码更加可靠6.Java中所有类都是类_的子类。7.请写出下面程序的运行结果。public class Test extends TT public void main(String args) Test t = new Test(Tom); public Test(String s) super(s); System.out.println(How do you do?); public Test() this(I am Tom); www.xamda.CoMclass TT public TT() System.out.println(What a pleasure!); public TT(String s) this(); System.out.println(I am +s); 结果:_8.父类的成员在子类中的访问权限由决定。9.对象的使用包括引用对象的成员变量和方法。通过运算符就能实现对对象成员变量的访问和对象10.Java是面向对象语言,对象是客观事物的,对象与之是一一对应的,它是很具体的概念。参考答案: l答:继承是面向对象程序设计中两个类之间的一种关系。当一个类获取另一个类中所有非私有的数据和操作的定义作为它自己的部分或全部成分时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,继承了父类或超类的所有数据和操作的类称为子类。面向对象程序设计中的继承,可使得程序结构更加清晰,降低了编码和维护的工作量。如果一个类只能有一个父类,则这种继承关系称为单重继承;如果一个类可以有多个父类,则这种继承关系称为多重继承。2答:父类SuperClass父类的域data来源:考试大的美女编辑们父类的方法setData(),getData()子类SubClass子类的域data,subData子类的方法setSubData(),setData(),getData()采集者退散3答:这种说法是错误的,因为子类不一定能继承父类的所有域和方法,它只能继承所有非私有的域和方法。如果子类在继承之外自己定义的域和方法数目小于父类中私有成员的数目,则子类的域和方法的数目小于父类的域和方法的数目|考试大收集整理4. true5. A D6. Object7. 答:What a pleasure!I am TomHow do you do?8. 访问权限修饰符9. “.”10.软件模型自考Java语言程序设计(一)第六章重载与多态课后习题六、重载与多态1.判断:接口中的所有方法都没有被实现。()2.方法重载是指 ( ) A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同考试大论坛B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的方法名字不同,但形参的个数或类型相同D.两个以上的方法取相同的方法名,并且方法的返回类型相同 3什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?与方法的重载有何不同?4解释this和super的意义和作用。5什么是多态?面向对象程序设计为什么要引人多态的特性?使用多态有什么优点? 6Java程序如何实现多态?有哪些方式?7根据下面的要求编程实现复数类ComplexNumber。(1)复数类ComplexNumber的属性m_dRealPart实部,代表复数的实数部分。m_dlmaginPart虚部,代表复数的虚数部分。(2)复数类ComplexNumber的方法ComplexNumber()构造方法,将实部、虚部都置为0。ComplexNumber(doubler,doublei)构造方法,创建复数对象的同时完成复数的实部、虚部的初始化;r为实部的初值,i为虚部的初值。getRealPart()获得复数对象的实部。getlmaginaryPart()获得复数对象的虚部。setRealPart(doubled)把当前复数对象的实部设置为给定的形参的数字。setlmaginaryPart(doubled)把当前复数对象的虚部设置为给定形参的数字。complexAdd(ComplexNumberc)当前复数对象与形参复数对象相加,所得的结果也是复数值,返回给此方法的调用者。complexAdd(doublec)当前复数对象与形参实数对象相加,所得的结果仍是复数值,返回给此方法的调用者。complexMinus(ComplexNumberc)当前复数对象与形参复数对象相减,所得的结果也是复数值,返回给此方法的调用者。8什么是接口?为什么要定义接口?接口与类有何异同?来源:考试大的美女编辑们9一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法?10接口是否可以被继承?阅读下面的代码,试写出SubInterface中的抽象方法。interface SupInterfacepublic abstract int supMethod();interface SubInterface extends SupInterfacepublic abstract string subMethod();参考答案:1. true2.A3答:子类重新定义父类中已经存在的方法,称为方法的覆盖。注意:方法覆盖与域的隐藏不同。子类重新定义父类已有的域,并不能完全取代它从父类那 里继承的同名的域,这个域仍然占用子类的内存空间,在某些情况下会被使用;而当子类重新定义父类的方法时,从父类那里继承来的方法将被新方法完全取代,不 再在子类的内存空间中占一席之地。与方法的覆盖不同,重载不是子类对父类同名方法的重新定义,而是在一个类中定义了同名的不同方法。4答:关键字this指代当前类的当前对象,关键字super指代当前类的直接父类对象。考试大全国最大教育类网站(wwwE)5答:一个类中存在多个同名的方法,称为多态。把抽象功能和目的相同,而具体实现因不同情况而异的方法命名为同名方法,符合面向对象程序设计中抽象、提升概念,封装、隐藏细节的特点,从而提高了程序的简洁性和可读性,降低了类和程序模块直接的相互耦合和依赖。6答:Java程序通过覆盖和重载两种方式来实现多态。覆盖是子类重新定义父类中已有的方法,重载是在一个类内部定义与已存在的方法同名但是参数列表不同的方法。7答:public class ch5_e5_12public static void main(String args)ComplexNumber cNumber_1 = new ComplexNumber(3,-5);ComplexNumber cNumber_2 = 本文来源:考试大网new ComplexNumber(2,2);double d = 10.0;System.out.println(cNumber_1.toString() + 加 + cNumber_2.toString() + 等于 + cNumber_1.complexAdd(cNumber_2).toString();System.out.println(cNumber_1.toString() + 加 + d + 等于 + cNumber_1.complexAdd(d).toString();System.out.println(cNumber_1.toString() + 减 + cNumber_2.toString() + 等于 + cNumber_1.complexMinus(cNumber_2).toString();System.out.println(cNumber_1.toString() + 减 + d + 等于 + cNumber_1.complexMinus(d).toString();System.out.println(cNumber_1.toString() + 乘 + cNumber_2.toString() + 等于 + cNumber_1.complexMulti(cNumber_2).toString();System.out.println(cNumber_1.toString() + 乘 + d + 等于 + cNumber_1.complexMulti(d).toString();class ComplexNumber/域private double m_dRealPart;private double m_dImaginPart;/构造方法ComplexNumber()m_dRealPart = 0.0;m_dImaginPart = 0.0;ComplexNumber(double r,double i)m_dRealPart = r;m_dImaginPart = i;ComplexNumber(ComplexNumber c)m_dRealPart = c.getRealPart();m_dImaginPart = c.getImaginaryPart();/get,set方法double getRealPart()return m_dRealPart;double getImaginaryPart()return m_dImaginPart;void setRealPart(double d)m_dRealPart = d;void setImaginaryPart(double d)m_dImaginPart = d;/复数运算方法ComplexNumber complexAdd(ComplexNumber c)return new ComplexNumber(this.m_dRealPart + c.getRealPart(),this.m_dImaginPart + c.getImaginaryPart();ComplexNumber complexAdd(double c)return new ComplexNumber(this.m_dRealPart + c, this.m_dImaginPart);ComplexNumber complexMinus(ComplexNumber c)return new ComplexNumber(this.m_dRealPart - c.getRealPart(),this.m_dImaginPart - c.getImaginaryPart();ComplexNumber complexMinus(double c)来源:return new ComplexNumber(this.m_dRealPart - c, this.m_dImaginPart);ComplexNumber complexMulti(ComplexNumber c)return new ComplexNumber(this.m_dRealPart * c.getRealPart() - this.m_dImaginPart * c.getImaginaryPart(),this.m_dRealPart * c.getImaginaryPart()+ this.m_dImaginPart * c.getRealPart();ComplexNumber complexMulti(double c)return new ComplexNumber(this.m_dRealPart * c, this.m_dImaginPart * c);/toString()public String toString()return ( + m_dRealPart + + + m_dImaginPart + i + );8答:接口是用来实现类间多重继承功能的结构。接口与类相似,但是接口中只能包括常量和抽象方法。定义接口相当于定义了一组抽象的功能、属性集合,可以使了ava程序的类层次结构更加合理,并实现多重继承。9答:使用关键字implements可以定义类实现某接口。实现某接口的类如果不是抽象类,则需要通过重载来实现该接口中的所有抽象方法;如果这个类是抽象类,则它可以不必实现该接口中的所有抽象方法。10答:接口可以被继承。SubInterface中的抽象方法有:public abstract int supMethod();和public abstract string subMethod();两个。自考Java语言程序设计(一)第七章Java常用类库介绍课后习题七、Java 常用类库介绍1指出下列陈述是对还是错,并做出解释。(1)当String对象用= = 比较时,如果String包括相同的值则结果为true。(2)一个String类的对象在其创建后可被修改。2对于下列描述,各写出一条语句完成要求的任务(1)比较s1中的串和s2中的串的内容的相等性;(2)用+=向串s1附加串;(3)判断s1中串的长度;来源:考试大3说明capacity()与length()用法上的差异?4如果ch为StringBuffer对象,ch=“Java Apple”,下列结果为何?(1)ch.insert(3,p)(2)ch.append(“Basic”)(3)ch.setlength(5)(4)ch.reverse()5Math类中提供用来常数和e的静态属性分别是什么?6下面关于Vector类的说法正确的是()(1)类Vector在java.util包中。(2)一个向量(Vector)对象存放的是一组有序的对象。(3)一个向量(Vector)对象大小可以根据存放的元素个数的增加而自动增加。(4)一个向量(Vector)对象中每个元素可以是不同类型的对象。7有三个字符串,编写程序找出其中最大者。8编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。9设定5个字符串,要求只打印那些以字母“b”开头的串,编写程序完成。10设定一个有大小写字母的字符串和一个查找字符,使用类 String方法IndexOf()来判断在该字符串中该字符出现的次数。参考答案1答:(1)错。用= =操作符比较String对象实际上是判断它们在内存中是否为同一对象,并不是判断它们的值是否相同。(2)错。String类的对象是常量。它们被创建后不可被修改。2答:(1)s1.equals(s1,s2);(2)s1+=s2;(3)s1.length();3答:capacity()返回字符串对象的当前缓冲区的长度,length()返回字符串对象字符的长度。考试大收集整理4答:(1)结果:Javpa Applet(2)结果:Javpa AppletBasic(3)结果:ch长度变为5(4)结果:apvaJ5答:PI、 E6答:(3)7public class max1public static void main(String args)String s1= Hello Java;String s2= Java Applet;String s3= Java;String s;if(pareTo(s2)0)s=s2;else s=s1;if(pareTo(s3)0)s=s3;Systrm.out.println(big=+s);8public class outpublic static void main(String args)String s1= Hello Java;StringBuffer bufup=new StringBuffer();StringBuffer buflow=new StringBuffer();for(int I=0;Iif(s1.charAt(i)=A&ch=a&ch=0&ch=9)y+;elsez+;catch(IOException e)System.out.println(e.toString();System.out.println(英文字母:+x);System.out.println(数字字符:+y);System.out.println(其它字符:+z);20答:import java.io.*;public class InFilepublic static void main(String args)int ch;tryFileOutputStream out=new FileOutputStream(a.txt);while(ch=System.in.read()!=r)System.out.write(ch);out.write(ch);out.close();System.out.write(n);catch(IOException e)System.out.println(e.toString();System.out.println(输出至文件完毕!);21答:import java.io.*;public class Sortpublic static void main(String args)int a=new int10;byte b=new byte10;int t;String str;System.out.println(请输入10个整数:);tryfor(int i=0;i10;i+)System.out.print(No. +(i+1)+: );System.in.read(b);str=new String(b);str=str.trim();ai=Integer.parseInt(str);catch(IOException e)System.out.println(e.toString();catch(NumberFormatException e)System.out.println(e.toString();for(int i=0;i9;i+)for(int j=i+1;jaj)t=ai;ai=aj;aj=t;for(int i=0;i10;i+)System.out.println(ai+t);自考Java语言程序设计(一)第九章JavaApplet概述课后习题九、Java Applet概述1下列方法中,哪一个不是Applet的基本方法()A、init()B、run()C、stop()D、start()2在Java中判定Applet的来源的方法有()A、getcodebase()B、get文档base()C、getCodeBase()D、get文档Bade()3.下面关于Applet的说法正确的是A、 Applet也需要main方法B、 Applet必须继承自javawt.Applet C、 Applet能访问本地文件D、 Applet程序不需要编译 4.Applet类的直接父类是( ) A.Component类 B.Container类C.Frame类 D.Panel类 5.判断:一个Applet编译后的类名是Test.class,运行此小程序的命令是Java Test。()6.编写同时具有Applet与Application的特征的程序。具体方法是:作为Application要定义main()方法,并且把 main()方法所在的类定义一个类。为使该程序成为一个Applet,main()方法所在的这个类必须继承Applet类或JApplet类。www.xamda.CoM考试就到考试大7在第一次加载Applet时,默认最先执行的方法是_。8调用_方法可以把HTML网页中的参数传递给Applet。来源:考试大9使用_方法可以从Web站点上下载声音,并调用play()方法和loop()方法播放它们。10Java程序可以通过调用哪个方法完成重画任务?参考答案1B2C D3. C4. C5. false6. 主7init()8getParameter()9getAudioClip()10repaint()自考Java语言程序设计(一)第十一章图形界面窗体简介课后习题十一、图形界面窗体简介1判断:每个applet上只能使用一种布局管理器。()2判断:使用BorderLayout布局管理器时,GUI组件可以按任何顺序添加到面板上。()3.判断:在使用BorderLayout时,最多只能包含5个组件。()4. 判断:使用Bord

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论