




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——自考Java语言程序设计(一)第五章以后课后习题及答案
自考Java语言程序设计(一)第五张课后习题及答案
自考Java语言程序设计(一)第五章类的继承课后习题
五、类的继承
l.什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来什么好处?什么是单重继承?什么是多重继承?
2.观测下面的程序片断,指出其中的父类和子类,以及父类和子类的各个域和方法。
classSuperClass{
intdata;
voidsetData(intnewData){
data=newData~}
intgetData(){
returndata~}}
classSubClassextendsSuperClass{
intsuhData;
voidsetSubData(intnewData){
suhData=newData;}
intgetData(){
returnsubData;}}3.“子类的域和方法的数目一定大于等于父类的域和方法的数目〞,这种说法是否正确?为什么?
4.在Java程序中,通过类的定义只能实现单重继承()5.以下哪些说法是正确的?A、Java语言只允许单一继承B、Java语言只允许实现一个接口
C、Java语言不允许同时继承一个类并实现一个接口D、Java语言的单一继承使得代码更加可靠6.Java中所有类都是类________的子类。
7.请写出下面程序的运行结果。publicclassTestextendsTT{publicvoidmain(Stringargs[]){Testt=newTest(\}
publicTest(Strings){super(s);
System.out.println(\}
publicTest(){this(\}
}.Examda.CoMclassTT{publicTT(){
System.out.println(\}
publicTT(Strings){this();
System.out.println(\}}
结果:________
8.父类的成员在子类中的访问权限由决定。
9.对象的使用包括引用对象的成员变量和方法。通过运算符就能实现对对象成员变量的访问和对象
10.Java是面向对象语言,对象是客观事物的,对象与之是一一对应的,它是很具体的概念。
参考答案:
l.答:继承是面向对象程序设计中两个类之间的一种关系。当一个类获取另一个类中所有非私有的数据和操作的定义作为它自己的部分或全部成分时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,继承了父类或超类的所有数据和操作的类称为子类。
面向对象程序设计中的继承,可使得程序结构更加明了,降低了编码和维护的工作量。假使一个类只能有一个父类,则这种继承关系称为单重继承;假使一个类可以有多个父类,则这种继承关系称为多重继承。
2.答:
父类SuperClass
父类的域data来源:考试大的美女编辑们父类的方法setData(),getData()子类SubClass
子类的域data,subData
子类的方法setSubData(),setData(),getData()采集者退散
3.答:这种说法是错误的,由于子类不一定能继承父类的所有域和方法,它只能
继承所有非私有的域和方法。假使子类在继承之外自己定义的域和方法数目小于父类中私有成员的数目,则子类的域和方法的数目小于父类的域和方法的数目|考试大收集整理
4.true5.AD6.Object7.答:
Whatapleasure!IamTom
Howdoyoudo?8.访问权限修饰符9.“.〞10.软件模型
自考Java语言程序设计(一)第六章重载与多态课后习题
六、重载与多态
1.判断:接口中的所有方法都没有被实现。()2.方法重载是指()
A.两个或两个以上的方法取一致的方法名,但形参的个数或类型不同考试大论坛B.两个以上的方法取一致的名字和具有一致的参数个数,但形参的类型可以不同C.两个以上的方法名字不同,但形参的个数或类型一致
D.两个以上的方法取一致的方法名,并且方法的返回类型一致
3.什么是方法的覆盖?方法的覆盖与域的隐蔽有何不同?与方法的重载有何不同?4.解释this和super的意义和作用。5.什么是多态?面向对象程序设计为什么要引人多态的特性?使用多态有什么优点?6.Java程序如何实现多态?有哪些方式?
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中的抽象方法。interfaceSupInterface{
publicabstractintsupMethod();}
interfaceSubInterfaceextendsSupInterface{
publicabstractstringsubMethod();}
参考答案:1.true2.A
3.答:子类重新定义父类中已经存在的方法,称为方法的覆盖。注意:方法覆盖与域的隐蔽不同。子类重新定义父类已有的域,并不能完全取代它从父类那里继承的同名的域,这个域依旧占用子类的内存空间,在某些状况下会被使用;而当子类重新定义父类的方法时,从父类那里继承来的方法将被新方法完全取代,不再在子类的内存空间中占一席之地。与方法的覆盖不同,重载不是子类对父类同名方法的重新定义,而是在一个类中定义了同名的不同方法。
4.答:关键字this指代当前类的当前对象,关键字super指代当前类的直接父类对象。考试大-全国最大教育类网站(.E)
5.答:一个类中存在多个同名的方法,称为多态。把抽象功能和目的一致,而具体实现因不可怜况而异的方法命名为同名方法,符合面向对象程序设计中抽象、提升概念,封装、隐蔽细节的特点,从而提高了程序的简单性和可读性,降低了类和程序模块直接的相互耦合和依靠。
6.答:Java程序通过覆盖和重载两种方式来实现多态。覆盖是子类重新定义父类中已有的方法,重载是在一个类内部定义与已存在的方法同名但是参数列表不同的方法。
7.答:
publicclassch5_e5_12{
publicstaticvoidmain(Stringargs[]){
ComplexNumbercNumber_1=newComplexNumber(3,-5);
ComplexNumbercNumber_2=
然后在你程序中主动地产生一个ArithmeticException类型被0除而产生的异常,并用catch语句捕获这个异常。最终通过ArithmeticException类的对象e的方法getMessage给出异常的具体类型并显示出来。
12.根据所给创立自定义异常类的使用格式,编写一个自定义异常的小程序。13.什么叫流?流式输入输出有什么特点?
14.Java流被分为字节流、字符流两大流类,两者有什么区别?15.File类有哪些构造函数和常用方法?16.利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过命令行参数传入。
17.编写一个程序,在当前目录下创立一个子目录test,在这个新创立的子目录下创立一个文件,并把这个文件设置成只读。
18.位置指针的作用是什么?RandomAccessFile类提供了哪些方法实现对指针的控制?
19.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数。
20.编写一个程序,从键盘输入一串字符,从屏幕输出并将其存入a.txt文件中。采集者退散
21.编写一个程序,从键盘输入10个整数,并将这些数据排序后在标准输出上输出。
参考答案
1.答:内存耗尽、数组下标超出边界、被0除、非法的方法参数、算法溢出处。来源:考试大的美女编辑们
2.答:(1)Java通过面向对象的方法进行异常处理,把各种异常事件进行分类,表达了良好的层次性,提供了良好的接口,这种机制对于具有动态特性的繁杂提供了强有力的控制方式。(2)Java的异常处理机制使得处理异常的代码和“常规〞代码分开,减少了代码的数量,加强了程序的可读性。(3)Java的异常处理机制使得异常事件可以沿调用栈自动向上传播,而不是C语言中通过函数的返回值来传播,这样可以传递更多的信息,并且简化了代码的编写。(4)由于把事件当成事件处理,利用类的层次性我们可以把多个具有一致父类的异常统一处理,也可以区分不同的异常分别处理,使用十分灵活。
3.答:a.异常处理用于不经常发生但寻常导致程序终止的状况,因此要求编程人员为编译器的优化执行实现异常处理。b.常规控制结构的控制流程寻常比异常的更为明了、交流更高。c.在发生异常,并且没有释放异常发生之前分派的资源时,堆栈是展开的,所以会出现一些问题。d.“额外的〞异常会阻碍真正错误类型的异常。这种使程序员更难以跟踪大量的异常。
4.答:异常产生的方式有3种。第一种是在某些内部错误时,Java虚拟机可以产生异常,该异常不在你的程序控制范围内,寻常不作处理。其次种是由程序代码中的错误引起,这种异常需要你的程序处理。第三种是通过使用throw语句手动生成的异常。
5.答:未捕获的异常最终会导致程序非正常终止。6.publicclassExceptionExam{
publicstaticvoidmain(String[]args){try{
inti=0;
i=3/i;//将产生算术异常。}
catch(ArithmeticExceptione)//找到了匹配的异常,执行该catch块。{
System.out.println(\发生了ArithmeticException异常\}
catch(AarryIndexOutOfBoundsExceptione)//不是匹配的异常,且不会再捕获//异常,假使发生数组索引超出范围所产生的异常,将执行该catch块。{
System.out.println(\发生了AarryIndexOutOfBoundsException异常\}
catch(Exceptione)
//前两个catch块均无法捕获try块中发生的异常时,才会执行该catch块。{
System.out.println(\发生了异常\}finally
{System.out.println(\执行dFinally\}}
7.答:无论是出于何种原因,只要执行离开try/catch代码块,就会执行finally代码块。即无论try是否正常终止,都会执行finally定义的最终的代码。假使try代码块中的任何代码或它的任何catch语句从方法返回,也会执行finally代码块。但此题中在try代码块中执行了“System.exit(0);〞语句,执行了这一语句后,Java虚拟机(JVM)将被终止。那么finally语句块一定不会被执行。
8.答:在某些状况下,假使一个方法产生自己不处理或无法处理的异常,它就必需在throws子句中声明该异常。
9.答:寻常,可以采用两种方式来报告错误:返回值和异常。在Java中异常处理很常用,虽然返回错误代码在某些状况下是一种有效的方式,但是异常处理可以提供强大的结构化方法来处理异常。所以需要处理代码中的错误时就可以采用异常的方法进行处理。
10.答:ExceptionExam不是继承(扩展)Throwable的子类,只有Throwable的子类可以由throw抛出。所以,这一段代码会出错。
11.
publicclassExceptionExam1{
publicstaticvoidmain(String[]args){try
{inti=0;i=3/i;}
catch(ArithmeticExceptione){
System.out.println(\异常是:\}
finally{
System.out.println(\语句被执行\}}}
注意:假使在catch语句中声明的异常类是Exception,catch语句也能正确地捕获,这是由于Exception是ArithmeticException的父类。假使不能确定会发生哪种状况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。
12.
classExcp1extendsException{}
classExcp2extendsExcp1{}
publicclassExceptionExam7{
publicstaticvoidmain(String[]args)throwsException{try{
thrownewExcp2();}
catch(Excp2e){
System.out.println(\thrownewExcp1();}
catch(Excp1e){
System.out.println(\thrownewException();}
catch(Exceptione){
System.out.println(\}
finally{
System.out.println(\}}}
说明:自定义异常类,关键是选择继承的超类——必需是Exception或者其子类。用异常代表错误,而不要再使用方法返回值。
13.答:所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java把这些不同来源和目标的数据都统一抽象为数据流。数据流可分为输入流和输出流,输入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列。
流式输入输出的特点是数据的获取和发送沿数据序列的顺序进行,即每一个数据都必需等待排在它前面的数据,等前面的数据读入或送出之后才能被读写。所以流和队列一样,只能以“先进先出〞的方式对其中的数据进行读写,而不能随意选择读写的位置。
14.答:两者都作为Object类的直接子类,基本输入流(无效Stream)和基本输出流(OutputStream)是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字符流的类。
15.答:构造函数有:
(1)publicFile(Stringpathname):创立一个对应于参数pathname的File类对象。参数pathname是包含目录和文件名的字符串。假使没有文件名,则代表目录。
(2)publicFile(Stringparent,Stringchild):该构造函数将pathname分成两部分parent和child,参数parent表示目录或文件所在路径,参数child表示目录或文件名称。
(3)publicFile(Fileparent,Stringchild):该构造函数与上面一个不同在于将parent的参数类型由String变为File,代表parent是一个已经创立的File类文件对象(指向目录)。
常用方法有:
(1)publicbooleancanWrite():返回文件是否可写。(2)publicbooleancanRead():返回文件是否可读。
(3)publicbooleancreateNewFile():当文件不存在时创立文件。16.
importjava.io.*;classCopyFile{
publicstaticvoidmain(String[]args){Stringfile1,file2;intch=0;try{
file1=args[0];file2=args[1];
File无效Streamfis=newFile无效Stream(file1);FileOutputStreamfos=newFileOutputStream(file2);while((ch=fis.read())!=-1)fos.write(ch);fis.close();fos.close();}
catch(FileNotFoundExceptione){
System.out.println(\源文件:未找到!\
}catch(ArrayIndexOutOfBoundsExceptione){System.out.println(\缺少运行参数!\System.exit(-1);}
catch(IOExceptione){
System.out.println(e.toString());}}}
17.答:
importjava.io.*;
publicclassNewFile{
publicstaticvoidmain(Stringargs[]){Filef=newFile(\
if(f.exists()f2.setReadOnly();
}catch(IOExceptione){
System.out.println(e.toString());}
System.out.println(\文件:\创立终止!\}else
System.out.println(\目录\创立失败!\}}}18.答:要实现对文件的随机读取,也就是在文件的任何位置执行读写数据的操作,需要一个指针来指定读写的位置。在创立RandomAccessFile类对象的同时,系统自动创立了一个指向这个文件开头的指针,当执行读写操作后,指针自动指向被读写数据之后的第一个字节处。指针初始值是0,每读/写一个字节,指针自动增加1。RandomAccessFile类提供了一些控制指针移动的方法。
publiclonggetFilePointer();获取当前指针指向文件的位置。考试大论坛pulbicvoidseek(longpos);将指针移动到参数pos指定的位置。publicintskipBytes(intn);指针从当前位置向后移动n个字节位置,并返回指针实际移动的字节数。
19.答:
importjava.io.*;publicclassCount{
publicstaticvoidmain(String[]args){
intx=0,y=0,z=0;
intch;try{
while((ch=System.in.read())!='\\r'){
if(ch>='A'
elseif(ch>='0'elsez++;}
}catch(IOExceptione){
System.out.println(e.toString());}
System.out.println(\英文字母:\System.out.println(\数字字符:\System.out.println(\其它字符:\}}
20.答:
importjava.io.*;publicclassInFile{
publicstaticvoidmain(String[]args){
intch;try{
FileOutputStreamout=newFileOutputStream(\while((ch=System.in.read())!='\\r'){System.out.write(ch);out.write(ch);}
out.close();
System.out.write('\\n');}catch(IOExceptione){
System.out.println(e.toString());}
System.out.println(\输出至文件完毕!\}}
21.答:
importjava.io.*;publicclassSort{
publicstaticvoidmain(Stringargs[]){
inta[]=newint[10];
byteb[]=newbyte[10];intt;
Stringstr;
System.out.println(\请输入10个整数:\try{
for(inti=0;ia[j]){t=a[i];a[i]=a[j];a[j]=t;}}
for(inti=0;i
p2.setLayout(newFlowLayout());ch=newChoice();ch.add(\红色\ch.add(\绿色\ch.add(\蓝色\
bg=newCheckbox(\背景\fg=newCheckbox(\前景\p1.add(bg);p1.add(fg);
btnOK=newButton(\确定\btnCancel=newButton(\取消\p2.add(btnOK);p2.add(btnCancel);p.add(p1);p.add(p2);
add(ch,BorderLayout.NORTH);add(p,BorderLayout.CENTER);setSize(400,300);}
publicstaticvoidmain(String[]args){newChp9_3_B().setVisible(true);}}
自考Java语言程序设计(一)第十三章课后习题
十三、常用组件之二_______单行文本框与多行文本框,单项选择框和复选框1.判断:列表对象总包含滚动条。()
2.判断:面板的默认管理器是BorderLayout。
3.____________类用于创立一组单项选择按钮。来源:考试大
4.欲编写如下图的一个界面,用于显示用户指定的图像:假使在区域A中只能放置一个
AWT组件,从各组件的本来功能角度考虑,最好使用哪种组件:A、TextAreaB、PanelC、AppletD、Canvas
5.Java应用程序中的默认外观是_________。A.MotifB.WindowsC.METAl
6.创立下面的GUI,要求在文本框中输入分数,单击“求和〞按钮后在结果文本框中显示总分。
7.编写一个将华氏温度转换为摄氏温度的程序。应从键盘输入华氏温度,然后通过文本显示转换后的摄氏温度。使用下面的公式进行温度转换:
摄氏温度=5/9Χ(华氏温度-32)8.编写一个程序,使用户能够使用鼠标在applet中绘制一个矩形。按住鼠标左键,确定矩形的左上角,然后拖动鼠标,在需要的位置(即矩形右下角)释放鼠标。另外,在状态栏中显示矩形面积。
参考答案1.false2.true
3.CheckboxGroup4.D5.C
6.参考程序如下:
importjavawt.*;来源:考试大importjavawt.event.*;
publicclassChp9_3_CextendsFrameimplementsActionListener{TextFieldtextField1,textField2,textField3;Buttonbutton1=newButton(\求和\Panelpanel1,panel2;publicChp9_3_C(){
textField1=newTextField();textField2=newTextField();textField3=newTextField();panel1=newPanel();panel2=newPanel();
panel1.setLayout(newGridLayout(3,2));panel2.setLayout(newFlowLayout());panel1.add(newLabel(\数学:\panel1.add(textField1);
panel1.add(newLabel(\英语:\panel1.add(textField2);
panel1.add(newLabel(\总分:\panel1.add(textField3);panel2.add(button1);
add(panel1,BorderLayout.CENTER);add(panel2,BorderLayout.SOUTH);button1.addActionListener(this);setSize(300,200);setVisible(true);}
publicstaticvoidmain(String[]args){newChp9_3_C();
}
publicvoidactionPerformed(ActionEvente){intn1,n2,sum;
n1=Integer.parseInt(textField1.getText());n2=Integer.parseInt(textField2.getText());sum=n1+n2;
textField3.setText(\}}
6.参考程序如下:importjavawt.*;
importjavawt.event.*;
publicclassChp9_3_DextendsFrame{TextFieldtextField1,textField2;Buttonbutton1;publicChp9_3_D(){
textField1=newTextField(30);textField2=newTextField(30);button1=newButton(\转换\setLayout(newFlowLayout());add(newLabel(\华氏温度:\add(textField1);
add(newLabel(\摄氏温度:\add(textField2);
textF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省主要粮油作物重大病虫害防治常用药剂、施药情况记录表
- 高效备考:CPSM2024试题及答案
- 提升CPMM应试能力的试题及答案
- 供应链管理师应对竞争策略试题及答案
- 供应链管理师人际沟通能力试题及答案
- 2024年SCMP考试预测及试题答案
- 采购管理师市场分析试题及答案
- 保健急救知识培训课件
- 2024年注册安全工程师笔试实战试题及答案
- SCMP考试变化与试题答案应对
- 四年级数学(小数加减运算)计算题专项练习与答案
- 躲在蚊子后面的大象读书
- PAS 2050:2011-商品和服务在生命周期内的温室气体排放评价规范(英文)
- 空调供货方案
- 6S管理控制程序文件
- 23J916-1 住宅排气道(一)
- 精装修项目主要分项工程施工技术方案
- 四川省成都市航天中学2025届高三二诊模拟考试物理试卷含解析
- 项目部施工班组管理办法
- 中华人民共和国职业分类大典是(专业职业分类明细)
- 《浙江省建设工程专业工程师和高级工程师职务任职资格评价条件》
评论
0/150
提交评论