《Java程序设计实用教程第4版习题解答与实验指导第18章.docx》由会员分享,可在线阅读,更多相关《Java程序设计实用教程第4版习题解答与实验指导第18章.docx(58页珍藏版)》请在优知文库上搜索。
1、JaVa程序设计好用教程(第4版)习题解答及试验指导叶核亚编著2019年11月书目“Java程序设计”课程教学要求1第1章JaVa概述4第2章JaVa语言基础6第3章类的封装、继承和多态27第4章接口、内部类和JaVaAPl基础45第5章异样处理51第6章图形用户界面53第7章:多线程59第8章输入/输出流和文件操作62“Java程序设计”课程教学要求1 .课程性质、目的和任务程序设计是高等学校计算机学科及电了信息学科各专业本科的核心专业基础课程,是培育学生软件设计实力的重要课程。在计算机学科的本科教学中,起着特别重要的作用。“Java程序设计”是计算机科学及技术专业本科的专业基础限选课,开设
2、本课程的目的是:进行程序设计和面对对象方法的基础训练;运用Java编程技术,设计解决操作系统、网络通信、数据库等多种实际问题的应用程序。本课程通过全面、系统地介绍JaVa语言的基础学问、运行机制、多种编程方法和技术,使学生理解和驾驭面对对象的程序设计方法,理解和驾驭网络程序的特点和设计方法,建立起坚固扎实的理论基础,培育综合应用程序的设计实力。本课程的先修课程包括:C/C+程序设计、C/C+程序设计II、数据结构、操作系统、计算机网络、数据库原理等。2 .教学基本要求本课程的基本要求如下。了解JaVa语言特点,理解JaVaAPPIiCatiOn应用程序的运行原理和方法。驾驭在JDK环境中编译和
3、运行程序的操作,熟识在MyECliPSe集成开发环境中,编辑、编译、运行和调试程序的操作。驾驭Java语言中语句、数组、引用类型等基本语法成分的运用方法,通过类、接口、内嵌类型、包、异样处理等机制表达和实现而对对象程序设计思想。驾驭Java的多种好用技术,包括图形用户界面、多线程、文件操作和流、运用UR1.和Socket进行网络通信等。熟识JaVaJDBC数据库应用的设计方法。熟识基于JSP的Web应用设计方法。重点:面对对象概念,图形用户界面,线程,流及文件操作,Socket通信。难点:继承和多态,线程同步,流及文件操作,S。Cket通信,JDBa第1章Java概述本章教学内容及要求如下:了
4、解JaVa语言特点,理解JaVaAPPliCatiOn应用程序的运行原理和方法,理解由JaVa虚拟机支持的程序运行机制。驾驭在JDK环境中编译和运行程序的操作,熟识在MyECIiPSe集成开发环境中编辑、编译、运行和调试程序的操作。重点:驾驭在JDK和MyEclipse环境中编译和运行JavaApplication应用程序的操作。1.1 了解JavaI-IJaVa具有哪些适合在Internet环境中运行的特点?【答】跨平台特性、完全面对对象和简洁性、牢靠性、平安性、多线程、支持分布式网络应用等。1-2什么是跨平台特性?Java怎样实现跨平台特性?【答】跨平台特性是指一个应用程序能够运行于不同的
5、操作系统平台。JaVa采纳虚拟机技术支持跨平台特性,不同的操作系统上运行不同版本的JaVa虚拟机。-3JaVa源程序文件编译后生成什么文件?程序的运行机制是怎样的?【答】JaVa将源程序文件(*.java)中的每个类编译生成一个字节码文件(.class),由JaVa虚拟机说明执行字节码文件。1-4Java应用程序有哪两种形式?它们的运行方式有什么不同?【答】JaVa应用程序有两种:ApplicationAppleteApplication是能够独立运行的应用程序,有限制台和图形用户界面两种运行方式。APPlet是可以嵌入Web页面的最小应用,它不能独立运行,必需嵌入超文本(*.html)中,由
6、阅读器中的JaVa说明器说明执行。1.2 JDK1-5环境变量path和classpath的作用分别是什么?【答】path供应可执行文件(.exe)的路径:classpath供应类文件(.class)的路径。1-6什么是包?为什么须要包机制?【答】包(PaCkage)是类的集合。包是Java区分类名字空间的机制。一个包中的多个类之间不能重名,不同包中的类名则可以相同。【习1】为例1.2的1.ine类增加以下方法:publicdoublelength()/返回直线长度inta=start.-end.x,b=start.y-end.y;returnMath,sqrt(a*a+b*b);/Math.
7、Sqrt(X)返回x的平方根-7Java对源程序文件中的声明语句及文件其命名规则有什么要求?【答】在一个JaVa源程序文件(*.java)中,可以运用package语句声明包,运用import语句导入包,之后运用CIaSS或interface声明多个类或接口。其中,声明为public权限的类或接口只能有一个,且文件名必需及该类名相同。1-8程序中的错误有哪几种?分别在什么时刻被发觉?【答】语法错、语义错、逻辑错。编译时能够发觉语法错,运行时能够发觉语义错,运行时不能发觉逻辑错。第2章Java语言基础本章教学内容及要求如下:驾驭Java语言的基本语法成分,包括标识符及关键字、数据类型、运算符、表
8、达式、变量声明等语言成分,驾驭分支、循环等流程限制语句的语法和运用。特殊留意及C/C+的不同之处。驾驭数组类型的声明和动态内存申请,驾驭以基本数据类型和类的两种方式声明和运用字符串。驾驭Java语言的方法声明和调用规则,驾驭基本类型和引用类型作为方法参数和返回值的传递规则。驾驭MyECIiPSe程序调试技术。重点:数组的引用模型:运用静态方法,引用类型作为方法的参数和返回值。难点:位运算,二进制:递归算法。VyECIiPSe程序调试技术。2.1语言成分i数据类型、变量及运算21Java语言的基本数据类型有哪些?引用数据类型有哪些?【答】基本数据类型有:整数类型byte、short,int.lo
9、ng,浮点数类型float、double,字符类型char,布尔类型boolean;引用数据类型包括数组(array).类(class)和接口(interface).2-2及C+语言相比,Java语言的变量和常量声明有什么差别?【答】JaVa语言没有全局变量,(成员)局部变量含义及变量声明格式及C+相同。Java语言没有宏替换,运用最终变量概念代替C+中的常量和宏替换。运用final关键字声明最终变量,只能赋值一次,这样既增加了常量功能,乂避开全局变量和宏替换的副作用。23Java语言的运算分哪些类型?及C+语言相比,运算符及运算含义有哪些变更?【答】Java语言有克术运算、关系运算、位运算、
10、逻辑运算、赋值运算、强制类型转换、条件运算、括号运算、点运算、new、+字符串连接运算和instanceof运算等,其中+字符串连接和instanceof运算符是JaVa新增的,此外,放弃了C+的SiZeof运算符。及C+语言相比,Java语言的语法更为严谨,将C+中某些简洁引起混淆的语法做了修订,编译时也将严格进行检查。在Java语言中,运算符及运算含义有变更的说明如下。没有赋值功能的表达式不能作为语句。例如:inti=0;i+1:/编译错“无效的赋值运算”逗号是分隔符,仅用于分隔表达式,不是运算符,不能出现在表达式中。例如:for(inti=0,j=0;in&jn;i+,j+)/正确,逗号
11、是分隔符intx=0,y=0;正确,逗号是分隔符System,out.println(w*+(x=l,y=2);/编译错,表达式不能包含逗号=l,y=2;编译错,逗号仅用于分隔表达式,不是运弊符x=ly=2;/正确Java语言增加boolean类型用于逻辑运算,其值不是0或1。例如:booleanb=0;编译错“不能将int荚型转换成boolean类型”关系运算、逻辑运算和instanceof运算的结果都是boolean类型。整数不能进行逻辑运算。Java语言严格区分boolean及int类型,运算类型不能混治。boolean类型及整数类型或其他类型不能进行算术运算、关系运算、逻辑运算。例如:
12、booleanb=false+0;编译错boolean类型及int类型不能进行+运算”if、WhiIe等语句中的条件表达式不能是赋值运算,否则产生编译错。if(i=0)编译错,i=0运结巢是int类型,而不是booleanwhile(i=0)编译错字符串连接运算符(+)自动将其他类型变量值转换成字符串类型。2.整数运算的数据类型及数据溢出2-4表达式(byte)127+(byte)127的运算结果是,其数据类型是0【答】254,intK说明1Java的整数默认是int类型,byte类型只是形式上的,取相应int值的最低1个字节。全部byte和short整数运算仍旧是int类型运算,运算结果是i
13、nt类型,当运算结果在byte数据范围内时,也可视作byte类型。2-5已知Integer.M/X_V/1.UE值为2147483647,表达式Integer.MAX,V1.UE+1的运复结果是。【答】-2147483648,即0x80000000&说明Integer.MAXJfA1.UE值为0x7fffffff,0x7fffffff+l=0x80000000,数据溢出。运算过程如图2.1所示。图2int整数数据溢出2-6设intmin=Integer.MIN-V1.UE;,表达式设n+min的运算结果是o【答】0K说明Integer.MINJfA1.UE值为0x80000000,0x8000
14、0000+0x800000000,数据溢出。2-7设intmin=Integer.MIN-V1.UE;表达式(IOng)(Inin+min)的运算结果是。【答】0K说明Integer.MINJrA1.UE值为0x80000000,0x80000000+0x80000000=0,数据溢出。强制类型转换,只是把0强制转换成long类型。2-8设intmin=Integer.MIN_V/1.UE;,表达式(long)min+(long)min的运算结果是。【答】Oxffffffff00000000,或-4294967296。K说明讥nteger.MINVA1.UE值为0x80000000,先强制转换
15、成long类型,值为OXffffffff80000000,再作为IOng类型运算,数据不溢出。2-9设intmin=Integer.MIN-V1.UE;longg=min+min:,则g的值姑【答】0说明IIInin+min作为int类型运算,数据溢出。2-10设intmin=Integer.MINVA1.UE;longg=nin;g+=min;,则g的值是。【答】Oxffffffff00000000,或-4294967296。R说明longg=min;赋值将min自动扩容到IOng类型,再运算,long数据不溢出。3.整数位运算2-11表达式125&10的值是,表达式125|10的值是O【答】8,127K说明11int整数二进制位运算,运算过程如图2.2所示。VQ22int整数二进制位运算4 .浮点数运算2-12设doublex,将X按四舍五入方式强制转换成int类型的表达式的是三【答】(int)(x+0.5)5 .字符类