Java程序设计教程 课后答案_第1页
Java程序设计教程 课后答案_第2页
Java程序设计教程 课后答案_第3页
Java程序设计教程 课后答案_第4页
Java程序设计教程 课后答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

/Java程序设计教程第3版课后答案

第一章填空题:1、Java源程序文件的扩展名是_java_;Java源程序经编译后生成Java字节码文件,其扩展名是_class_。2、在Java语言中,将源代码翻译成_java字节码文件_时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。3、一个Application源程序文件名为MyPro.java,如果使用Sun公司的Java开发工具SDK编译该源程序文件并使用其虚拟机运行这个程序的字节码文件,应该顺序执行如下两个命令:_javacMyPro.java_、_javaMyPro_。4.已知:inta=8,b=6;则:表达式++a-b++的值为_3_。5.已知:booleanb1=true,b2;则:表达式!b1&&b2||b2的值为_false_。6.表达式(18-4)/7+6的运算结果是_8_。7、表达式5>2&&8<8&&23<36的运算结果是_false_。思考题:1、源程序是什么?答:源程序文件的三要素:一、以package语句开始的包声明语句为可选,若有,只能有一个且必须是第一句,若没有,此文件将放到默认的当前目录下二、以import语句开始的类引入声明语句,数量可以是任意个三、class定义和interface定义中,由public开始的类定义只能有一个,且要求源程序文件名必须与public类名相同,Java语言对字符的大小写敏感2、编译的作用是什么?答:用Java语言编辑的源程序的执行方法是采用先经过编译器编译、再利用解释器解释的方式来运行的。3、什么是Java的byte-codes,它的最大好处是什么?答:Java源程序经过编译器编译,会被转换成一种我们将它称之为“字节码(byte_codes)”的目标程序。“字节码”的最大特点便是可以跨平台运行。4、机器语言程序、高级语言程序以与可表示成Java字节码程序之间的区别是什么?答:机器语言是二进制编码表示,可以用机器直接运行。高级语言是贴近自然语言的,必须编译或解释才能让计算机运行,并且程序运行依赖该语言处理系统。可表示成java字节码的程序必须经过编译产生字节码程序,java字节码程序可以实现跨平台运行。5、试简述J2SE、J2ME与J2EE的区别。答:(1)JavaME——JavaMicroEdition,用于嵌入式Java消费电子平台,其内存资源受限。不论是无线通讯、手机、PDA等小型电子装置都可采用其作为开发工具与应用平台。(2)JavaSE——JavaStandardEdition,是Java最通行的版本,是用于工作站、PC机的Java标准平台。(3)JavaEE——JavaEnterpriseEdition,可扩展的企业应用Java平台,它提供了企业e-Business架构与WebServices服务,其开放的标准和优越的跨平台能力使其适于开发大规模的、分布式联网应用程序以与基于Web的应用程序。6、练习使用浏览器查看JavaAPI文档。7、SDK的编译命令是什么?答:javac8、Java标识符的命名有什么规定?答:一、用字母、下划线“_”或“$”作为开头字符,但数字不能作为变量的开头字符;二、标识符中间不能使用空格;三、不能使用Java的操作符,如“+”、“-”、“*”、“/”等;四、用户自定义标识符不能使用Java的关键字;五、严格区分大小写,即:my_var和My_var将被认为是两个不同的标识符。例:className、$member、_variable、var_num、varObj1合法1var、case、are&非法9、如何正确地定义变量?变量命名遵循标识符的命名规则约定:变量名是以小写字母开头,而类名是以一个大写字母开头的如果变量名包含了多个单词,而每个单词要组合在一起,则在每个单词的第一个字母大写,比如isVisible。下划线(_)可以处在变量的任何地方,但是一般地它只用在标识符常量中分离单词,因为标识符常量的常量名都是用大写字母的,利用下划线可以看得更清楚。一般来说,变量名命名要见名知义,不宜太简单,但也不宜过长。10、当Java程序的表达式中有类型不符合的情况时,有哪些规则可以处理类型转换?答:Java允许它的用户有限度地进行数据类型转换处理。转换的方式可分为“自动类型转换”和“强制类型转换”两种。1.自动类型转换:整型、实型和字符型数据需要进行混合运算时,首先需要把不同类型的数据转化为同一类型,然后才能进行运算。转换时,系统将按照数据类型的表示范围由小到大的转换原则自动进行。数据类型的表示范围由小到大的顺序依次为:2.强制类型转换:当表示范围大的数据类型要转换成表示范围小的数据类型时,需要用到强制类型转换。第二章一、思考题:1、什么是结构化程序设计?答:结构化程序设计有三种基本的程序流程结构:顺序、选择、循环。2、使用while和do...while循环有什么不同?答:dowhile循环语句功能与while语句类似,但dowhile语句的循环终止判断是在循环体之后执行,即,它总是先执行一次循环体,然后判断条件表达式的值是否为真,若为真,则继续执行循环体;否则循环到此结束。与dowhile语句所不同的是,while语句如果开始时的判别表达式为假,则可能一次都不执行循环体而直接结束循环。3、简述break和continue语句的区别答:在Java中可以用break语句强行退出循环,继续执行循环外的下一个语句如果break出现在嵌套循环中的内层循环,则break语句只会退出当前的一层循环,以for循环流程为例:在循环主体中有break语句时,当程序执行到break,即会退出循环主体,到循环外层继续执行。程序运行到continue语句时,就会停止循环体中剩余语句的执行,而回到循环的开始处继续执行循环。4、一维数组与二维数组如何声明、赋值与输出?答:一维数组声明语法格式如下:type数组名[]=newtype[个数n]对一维数组的赋值有如下方法:1.在声明时直接赋值,语法格式为:type数组名[]={数值1,数值2,……,数值n};2、在赋值声明的时候,不需要给出数组的长度,编译器会视所给的数值个数来决定数组的长度,例如:intmm[]={2,4,6,8,10,12,14,16,18,20}若是对数组的元素进行有规律的赋值,则可以使用循环的方式进行要输出使用数组里的元素,可以通过利用其下标来达到目的,只有一个下标值的数组就称为一维数组。Java数组的下标编号从0开始,如果声明的数组元素个数为n,则数组元素下标的变化只能是0~n-1。在Java中,因为数组元素可以声明成任何类型,因此如果一维数组的元素还是一维数组的话,这种数组就被称为二维数组。二维数组声明语法格式如下:type数组名[][]=newtype[个数][个数];对于二维数组元素的赋值,同样可以在声明的时候进行:例如:intssa[][]={{20,25,26,22},{23,24,20,28}};二维数组赋值与输出可以借助一维数组。二、填空题1、下面的程序运行后,其输出结果是_#*#*#_publicclassYuedu1{publicstaticvoidmain(String[]args){inti;for(i=1;i<6;i++){if(i%2==1){System.out.print("#");continue;}System.out.print("*");}System.out.println();}}2、下面的程序经运行后,其输出结果是(x1=10x2=6)publicclassYuedu3{publicstaticvoidmain(String[]args){intx,y;System.out.print("x1="+add(4,6));System.out.print("x2="+add(3,add(1,2)));}staticintadd(intx,inty){returnx+y;}}3、下面的程序经运行后,其输出结果是_72___publicclassYuedu4{publicstaticvoidmain(String[]args){System.out.print(fun(4));}staticintfun(intn){intt;if((n==0)||(n==1))t=3;elset=n*fun(n-1);returnt;}}4、下面的程序经运行后,其输出结果是_y=1x=0_publicclassYuedu1{publicstaticvoidmain(String[]args){intx,y;x=y=0;do{y++;x*=x;}while((x>0)&&(y>5));System.out.println("y="+y+"x="+x);}}第三章一、思考题1、类和对象之间的关系答:对象是客观世界中的某个具体事物。类是具有共同特性和行为的事物的抽象,是一种特殊数据类型。在类中包含了数据和与数据有关的操作(方法)。对象是类的实例。2、举例说明类(静态)成员的特点答:1.特点一:静态变量的值是共享。比如说A类中有个静态变量V_A,A类创建了两个实例a,b。如果给实例a的变量V_A赋值,如a.V_A=1。那么这时候查看实例b.V_A变量的值也为1,也就是说A对象实例化的两个类共享同一个变量值。2.特点二:不需要对象实例化就可以使用。比如A类中的静态变量V_A可以用A.V_A的形式使用。3、Java中的包和Windows的文件夹有什么关系?答:目录层次结构非常类似,包对应着Windows文件系统的目录层次结构。4、类的成员的访问权限和包的关系答:类的成员的权限用权限关键字设置,类的成员的权限和包的关系如下:权限:Public、protected、默认的同一包允许访问。权限:private同一包也不允许访问。权限:Public、protected的不同包子类允许访问权限:默认、private的不同包子类不允许访问5、方法的重载和覆盖的区别答:重载与覆盖的区别1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。3、覆盖要求参数列表相同;重载要求参数列表不同。4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。二、填空题1、在声明一个类变量时,前面必须要加上___static____修饰符2、__import___语句可以导入Java的实用包中的所有类3、方法的覆盖是___后期___绑定,方法的重载是___前期____绑定4、写出一个表达式:输出角度30°的余弦值__Math.cos(30*3.14/180)__5、为类Class1创建一个静态整型变量s_data:_staticints_data_。6、写出抽象类IamAbstract的类头定义语句:_publicabstraactclassIamAbstract_。7、定义一个抽象方法abstractMethod,没有形式参数,返回值为布尔型变量:_publicabstractbooleanabstractMethod()_。8、写出定义最终类IamFinal的类头定义语句:_finalclassIamFinal_。9、定义浮点常量PI,其取值为3.1415926:_floatPI=3.1415926f_。三、选择题1、有关类的说法正确的是()A.类具有封装性,所以类的数据是不能被访问的B.类具有封装性,但可以通过类的公共接口访问类中的数据C.声明一个类时,必须用public修饰符D.每个类中,必须有main方法,否则程序无法运行2、将类的成员的访问权限设置为默认的,则该成员能被()A.同一包中的类访问B.其他包中的类访问C.所有的类访问B.所有的类的子类访问3、下面是正确的方法重载的是()A.intfun(inta,floatb){}floatfun(inta,floatb){}B.intfun(inta,floatb){}floatfun(intx,floaty){}C.floatfun(floata){}floatfun(floata,floatb){}D.floatfun1(inta,floatb){}floatfun2(inta,floatb){}4、下面关于继承的说法正确的是()A.超类的对象就是子类的对象B.一个类可以有几个超类C.一个类只能有一个子类D.一个类只能有一个超类5、下面关于多态性的说法正确的是()A.一个类中,不能有同名的方法B.子类中不能有和父类中同名的方法C.子类中可以有和父类中同名且参数相同的方法D.多态性就是方法的名字可以一样,但返回的类型必须不一样第四章一、思考题1、Applet与Application的区别答:Application是一种可独立运行的程序,Applet是一种存储于Internet/Intranet服务器(Server)上的Java程序,可以被多个客户机下载并在客户端由浏览器提供的Java虚拟机JVM运行。Applet必须通过<applet>标签嵌入HTML程序在浏览器中运行。2、小应用程序在其生命周期中,init()、start()、stop()、destroy()、paint()方法执行时机?答:init()初始化,是小应用程序的入口点。执行时机是在第一次浏览web页面时执行一次。Stat()启动对应的方法,执行时机是浏览器载入程序时执行init()之后、离开上述web页面之后重新回来、使用浏览器的缩放按钮改变窗口大小。Stop()执行时机是离开小应用程序所在web页面、刷新该页面、关闭该页面、图标化浏览器。Destroy()执行时机关闭web页面时执行一次。3、事件处理的基本编程方法?答:用于监听xxEvent事件的编程的基本方法如下:第一步:程序开始加上importjava.awt.event.*语句。对java.awt中的组件实现事件处理必须都引入java.awt.event包。第二步:实现事件监听者所对应的接口,即添加:implementsxxListener(事件所对应的接口)。第三步:设置事件监听者:事件源.addxxListener(事件监听者)。第四步:编程实现对应事件接口中的全部方法。4、Swing与awt的异同答:awt与swing都是Java用于实现图形用户界面的类库,swing是JFC的一部分,它在技术上比awt迈进了一步;在外观效果上也比awt有进步。二、填空题:1、小应用程序的公共类必须是_java.applet.Applet的子类2、小应用程序生命期中__init()_方法只执行一次,__start()__方法可被反复执行多次3、将复选框用_java.awt.CheckboxGroup_进行分组即得到单选钮4、Java.awt.Font类用于设置_文本字体__5、绘制直线、圆、弧、多边形等绘图方法在_Java.awt.Graphics_包中第五章一、思考题:1、什么时候发生异常?答:在程序运行过程中,任何中断正常程序流程的情况都是错误或异常。例如,发生下列情况时,会出现异常:想打开的文件不存在;网络连接中断;操作数超出预定范围,例如,除数为0;数组元素下标越界。2、要被监视异常的代码必须放在哪个语句块中?答:Java中异常处理的一般形式是:try{//被监视的代码块}catch(异常类1对象名1){//异常类1的异常处理代码块}3、catch起什么作用?答:catch实现异常类型的捕捉。4、异常未被捕获会发生什么结果答:若有匹配则执行相应的处理代码,然后继续执行本try块之外的其他程序。否则这个没有被程序捕获的异常将由缺省处理程序处理,缺省处理程序将显示异常的字符串、异常发生位置等信息,终止整个程序的执行并退出。5、throws起什么作用?答:编程人员可以用throw语句自行抛出异常,throw语句的语法如下:throwThrowable类或其子类的对象。throws语句用于声明一个方法可能引发的所有异常,这些异常是要求调用该方法的程序处理的。其语法为:返回类型方法名(参数表)throws异常类型表{//方法体}6、在嵌

温馨提示

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

评论

0/150

提交评论