《Java程序设计实用教程(第4版)习题解答与实验指导》第1-8章_第1页
《Java程序设计实用教程(第4版)习题解答与实验指导》第1-8章_第2页
《Java程序设计实用教程(第4版)习题解答与实验指导》第1-8章_第3页
《Java程序设计实用教程(第4版)习题解答与实验指导》第1-8章_第4页
《Java程序设计实用教程(第4版)习题解答与实验指导》第1-8章_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、Java程序设计实用教程(第4版)习题解答与实睑指导叶核亚编着2013年11月目录“Java程序设计”课程教学要求1第1章Java概述3第2章Java语言基础5第3章类的封装、继承和多态 22第4章接口.内部类和Java API基础38第5章异常处理 43第6章图形用户界面 45第7章多线程 50第8章输入/输出流和文件操作52“Java程序设计”课程教学要求1 .课程性质、目的和任务程序设计是高等学校计算机学科及电子信息学科各专业本科的核心专业基础课程,是培 养学生软件设计能力的重要课程。在计算机学科的本科教学中,起着非常重要的作用。“Java程序设计”是计算机科学与技术专业本科的专业基础限

2、选课,开设本课程的目的 是:进行程序设计和面向对象方法的基础训练;使用Java编程技术,设计解决操作系统、 网络通信、数据库等多种实际问题的应用程序。本课程通过全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术, 使学生理解和掌握面向对象的程序设计方法,理解和掌握网络程序的特点和设计方法,建立 起牢固扎实的理论基础,培养综合应用程序的设计能力。本课程的先修课程包括:C/C+程序设计I、C/C+程序设计II、数据结构、操作系统、 计算机网络、数据库原理等。2 .教学基本要求本课程的基本要求如下。了解Java语言特点,理解Java Application应用程序的运行原理和方法。

3、掌握在 JDK环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行 和调试程序的操作。掌握Java语言中语句、数组、引用类型等基本语法成分的使用方法,通过类、接口、 内嵌类型、包、异常处理等机制表达和实现面向对象程序设计思想。掌握Java的多种实用技术,包括图形用户界面、多线程、文件操作和流、使用URL 和Socket进行网络通信等。熟悉Java JDBC数据库应用的设计方法。熟悉基于JSP的Web应用设计方法。重点:面向对象概念,图形用户界面,线程,流与文件操作,Socket通信。难点:继承和多态,线程同步,流与文件操作,Socket通信,JDBC, JSPo

4、3 .学时分配本课程学时为64学时,其中讲课48学时,实验16学时。学时分配见下表。章节(或内容)讲课实骏合计Java蜕述22Java语言基础44类的封装、继承和多态628接口、内部类和Java API基础426异常处理22图形用户界面628多线程426输入/输出流和文件操作628网络通信628数据库应用224即cb应用426综合应用设计22合计4816644 .实验教学目标与基本要求“Java程序设计”是理论与实践相结合的课程,不仅要求学生掌握基础知识,理解基本 原理,更要在实践环节中培养软件设计的基本技能。实践性环节是巩固所学理论知识、积累 程序设计经验的必不可少的重要环节,是提高程序设计

5、能力和计算机操作技能的有力保障。 实验和课程设计等都是加强程序设计训练所必需的实践环节。课程实验要求是,熟练使用一种Java开发环境(如MyEclipse),掌握编译、运行和调 试Java程序的操作,针对不同情况进行软件测试,完善程序并提高程序性能。实验类型有验证和设计两种。验证型实验的要求是,仿制已有例题,验证面向对象程序 设计的理论和方法,理解基本原理;设计型实验的要求是,应用图形用户界面、线程、Applet、 文件操作和流、网络通信、数据库应用等章的知识点,掌握解决这些实际应用问题的软件设 计方法,设计具有一定规模、较复杂、较综合并解决实际问题的应用程序,具备独立分析问 题、解决问题的能

6、力和综合应用程序的设计能力。本课程安排的上机实验学时为16时,课内开设的8个实验说明如下。项目内容实验时数实验1Java语言基砒和面向对象概念训练2实验2接口和实现接口的类,异常处理2实验3图形用户界面2实验4线程设计,线程互斥与同步2实验5输入/输出流,文件操作2实验6URL、TCP Socket. UDP Socket 等网络通信2实验7JDBC数据库应用设计2实验8基于JSP的Web应用设计2实验题有详细的实验训练目标、设计内容和设计要求。每次实验要求学生独立完成至少 一个程序的编写和运行,写出实验报告。实验报告内容包括:题目、题意解释、题意分析、 设计方案、流程描述、源程序清单、程序运

7、行结果、程序存在问题和改进意见等。1章 Java概述本章教学内容及要求如下:了解Java语言特点,理解Java Application应用程序的运行原理和方法,理解由 Java虚拟机支持的程序运行机制。 掌握在JDK环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中编辑、 编译、运行和调试程序的操作。重点:掌握在JDK和MyEclipse环境中编译和运行Java Application应用程序的操作。1. 1 了解 Java1-1 Java具有哪些适合在Internet环境中运行的特点【答】跨平台特性、完全面向对象和简单性、可靠性、安全性、多线程、支持分布式网 络应用等。1-2

8、什么是跨平台特性Java怎样实现跨平台特性【答】跨平台特性是指一个应用程序能够运行于不同的操作系统平台。Java采用虚拟机 技术支持跨平台特性,不同的操作系统上运行不同版本的Java虚拟机。1-3 Java源程序文件编译后生成什么文件程序的运行机制是怎样的【答】Java将源程序文件(*. java)中的每个类编译生成一个字节码文件(.class), 由Java虚拟机解释执行字节码文件。1-4 Java应用程序有哪两种形式它们的运行方式有什么不同【答】Java应用程序有两种:Application和Applet。Application是能够独立运行的应用程序,有控制台和图形用户界面两种运行方式。

9、Applet是可以嵌入Web页面的最小应用,它不能独立运行,必须嵌入超文本(*. html)中,由浏览器中的Java解释器解释执行。1.2 JDK1-5环境变量path和classpath的作用分别是什么【答】path提供可执行文件(.exe)的路径;classpath提供类文件(.class)的路径。1-6什么是包为什么需要包机制【答】包(package)是类的集合。包是Java区别类名字空间的机制。一个包中的多个 类之间不能重名,不同包中的类名则可以相同。【习1. 1】为例的Line类增加以下方法:public double length()ava)中,可以使用 package语句声明包,

10、使用import语句导入包,之后使用class或interface声明多个类或接口。 其中,声明为public权限的类或接口只能有一个,且文件名必须与该类名相同。1-7程序中的错误有哪几种分别在什么时刻被发现【答】语法错、语义错、逻辑错。编译时能够发现语法错,运行时能够发现语义错,运 行时不能发现逻辑错。2章 Java语言基础本章教学内容及要求如下:掌握Java语言的基本语法成分,包括标识符与关键字、数据类型、运算符、表达式、 变量声明等语言成分,掌握分支、循环等流程控制语句的语法和使用。特别注意与C/C+的 不同之处。掌握数组类型的声明和动态内存申请,掌握以基本数据类型和类的两种方式声明和

11、使用字符串。掌握Java语言的方法声明和调用规则,掌握基本类型和引用类型作为方法参数和返 回值的传递规则。掌握MyEclipse程序调试技术。重点:数组的引用模型;使用静态方法,引用类型作为方法的参数和返回值。难点:位运算,二进制;递归算法。MyEclipse程序调试技术。2. 1语言成分1.数据类型、变量及运算2-1 Java语言的基本数据类型有哪些引用数据类型有哪些【答】基本数据类型有:整数类型byte、short, int, long,浮点数类型float, double, 字符类型char,布尔类型boolean;引用数据类型包括数组(array)、类(class)和接口 (inter

12、face)。2-2与C+语言相比,Java语言的变量和常量声明有什么差别【答】Java语言没有全局变量,(成员)局部变量含义及变量声明格式与C+相同。Java语言没有宏替换,使用最终变量概念代替C+中的常量和宏替换。使用final关键字声明最终变量,只能赋值一次,这样既增加了常量功能,又避免全局变量和宏替换的副作 用。2-3 Java语言的运算分哪些类型与C+语言相比,运算符及运算含义有哪些变化【答】Java语言有算术运算、关系运算、位运算、逻辑运算、赋值运算、强制类型转换、 条件运算、括号运算、点运算、new、+字符串连接运算和instanceof运算等,其中+字符串 连接和instance

13、of运算符是Java新增的,此外,放弃了 C+的sizeof运算符。与C+语言相比,Java语言的语法更为严谨,将C+中某些容易引起混淆的语法做了修 订,编译时也将严格进行检查。在Java语言中,运算符及运算含义有变化的说明如下。没有赋值功能的表达式不能作为语句。例如:int i=0;If181710f 87 0Integer.MAX3ALUE |oill1114Integer.MIN_VALUE |lOOOOOOOpOOOOOOO»OOOOOOOWOOOOOO0000 00000000 00000000 00000111 1101125&0000 00000000 0000

14、0000 000000001010100000 00000000 00000000 00000000 10008(a) 125&10十进制2147483647十六进制0x7fnrnT0000 00000000 00000000 00000111 11010000 00000000 00000000 00000000 1010-21474836480x800000000000 00000000 (MMX)0000 0000()111 nil(b) 125 I 10123456789: ;< = > A B C D E F G H I J K L M N 0 P Q R S T

15、 U V W X Y Z abcdefghi jk Imnopqrstuvwxyz 修改上述程序段的for语句表达式如下,输出Unicode汉字字符表。(a) int a|=new int5;(b) int b:b=a; 引用赋值(c) b0=99;ch+)左上三角卜.标和为。n-1度变换类型变换类型取值有:b (boolean), c (字符)、C (字母大写),d (十进制整数),o (A进制整数)、x (十六进制整数)、e (浮点数指数形式)、f (浮点数小数形式)、s (字符串字当指定宽母小写)、S (字符串字母大写)。参数索引指定第几个参数,省略时为默认次序。度不足时,以实际宽度显示

16、;可用变量指定宽度。例如: +%2$d-%l$d55.l0) . +1055”(H%xk 二('E)0177).args)方法返回format指定格式的字符串,飞。二5x”分别指定八进制、十六进制整 数格式。类声明以下方法,分别返回整数的二、八、十六进制形式字符串。表2T publicstaticStringtoBinaryString(inti)Red Green Blue方法中的变量.实际参数swapO方法中的形式参数JU 2 |jI 2 卜y实部2 +虚部2(b)交换两个对象数组元素值111111110000 00000000 000011111111(a)交换两个按数数蛆元素位

17、If181710f,2-4获得当前日期和时间的语句是【答】new DateO或()或02-5获得当前日期月份的语句是,0【答】().get+l【习2.1】判断指定字符串是否为Java关键字。以下程序将Java所有关键字排序后保存在keywords字符串数组中,判断一个字符串是 否是Java关键字,算法需要在keywords数组中查找,若查找成功,则是Java关键字。以 下采用二分法查找算法,其查找效率比顺序查找算法效率高。import选择整数类型C byteshort。char O mi+用制卜侬|二,制|111111111。0。0。0I四设制33332000IAiftM |v7soo十六港制

18、卜w|【答】执行Thread类声明的run。方法,该方法体为空,所以没有操作结果。2-6设有T、R类声明如下,说明怎样使用这些实例创建、启动线程并执行有效操作public class T extends Threadtart();2.线程对象的生命周期2-7 Thread类中有哪些方法能够改变线程对象的状态各由什么状态改变到什么状态【答】Thread类中改变和判断线程状态的方法有:线程启动、线程睡眠、线程中断等。 线程启动start。方法将NEW新建态的线程改变成运行态RUNNABLE;线程睡眠sleepO方法 将当前线程由运行态进入等待态;线程中断interrupt。方法对当前线程设置运行中

19、断标记。1 .2 线程的同步机制2-8什么是交互线程什么是线程互斥与同步说明线程互斥与同步机制怎样保证交互 线程对共享变量操作的正确性,不产生与时间有关的错误。【答】共享变量的多个线程之间称为交互线程,它们执行时将因竞争共享变量的使用权 而影响其他线程的运行结果,可能产生与时间有关的错误。交互线程之间存在竞争和协作两种关系。线程互斥指,采用加锁方式使若干交互线程串行地使用同一共享资源,它是解决线程间 竞争关系的手段。线程同步指,两个以上线程基于某个条件来协调它们的活动。一个线程的执行依赖于另 一个协作线程的信号,当一个线程没有得到来自于另一个线程的信号时则需等待,直到信号 到达才被唤醒。线程同

20、步是解决线程间协作关系的手段。实验7线程设计增加实验题如下。2-9交通信号灯。设计一个表示四叉路口控制交通信号灯的图形用户界面,交通信号灯的属性包括方向 (东西、南北)、颜色(红、黄、绿)、车道(左转、直行、右转)、显示时间(秒)等。4个方向的信号灯同时运行,其中东西向、南北向的信号相同。以两位数显示倒计时的 秒数,超过百秒以A、B、C等代替,如A2表示102;经过指定延时时间,切换信号灯状态。3章输入/输出流和文件操作本章教学内容及要求如下:理解流的概念,理解流在文件操作中的作用;掌握通过Java各种字节流类和字符流 类对类型文件和文本文件进行顺序处理和随机处理;熟悉在对象之间通过流传递数据

21、的方 法;了解Java的标准输入/输出方法。掌握文件操作的基本方法,掌握对文件操作的File类,熟悉文件过滤器、文件对话 框;了解RandomAccessFi le随机存取文件类。重点:各种字节流类,字符流类,File类。难点: 如何选择使用哪种字节流或字符流,掌握程序设计方法,而不是死记硬背。 操作系统的文件组织方式是树结构,递归算法。3 . 1 文件和流的概念3-1什么是流流有什么作用面向对象程序设计语言为什么需要使用流哪些场合需要 使用流【答】流指数据传输。在面向过程的程序设计语言中,只有标准输入/输出和文件读写 操作中存在数据传输,而标准输入/输出是文件操作和特例。在面向对象程序设计语

22、言中,数据传输的应用范围更广,除了标准输入/输出和文件操 作,在内存的对象之间、以及不同计算机运行的线程之间都需要进行数据传输。数据传输功 能必须脱离于文件操作,相对独立。因此,面向对象程序设计语言使用“流”概念实现数据 传输功能,将各种类型数据传输封装成各种流类,根据数据特性,应用程序选择采用相应流 类传输数据。3-2 Java提供了哪些流类各种流类之间关系是怎样的什么场合需要使用什么流类【答】Java提供了字节流类和字符流类,InputStream和OutputStream是字节输入/出 流的根类,它们所有字节流约定读/写字节、读/写字节数组、关闭等操作方法,子类有文件 字节流、数据字节流

23、、对象字节流和管道字节流等;Reader和Writer是字符输入/出流的根 类,它们为字符流约定读/写字符、读/写字符数组、关闭等操作方法,子类有文件字符流、 缓冲字符流、管道流字符等。当在标准输入/出、读/写文件及内存变量之间传递数据时,需 要使用流。3-3 Java语言中,流与文件操作有什么关系【答】Java提供文件流实现读/写文件数据操作。3.2 字节输入/输出流类i.文件字节流3-4为什么InputStream的read()方法能够以T表示字节流结束是否与整数T相冲 突【答】(int)T的二进制形式为111111,调用(-1),实际上只写入低位1个字节,再调 用0读取1字节,作为int

24、整数最低1字节,高位补0 ,得到的值是 255(000000000000000000000000),不是整数-1。因此,InputStream 的 read。方法能够以 -1表示字节流结束。【习3. I】 使用字节流比较两个文件内容是否相同。以下equals。方法比较两个文件内容是否相同,算法有什么错误如何改正public static boolean equals(String fi1enamc1. String filenamc2) (try FilelnputStream fini = new FilelnputStream(filenamel);FileInputStream fin2

25、 = new FileInputStream(filenamc2); int il=0t i2=0;while (il=0) !=-l && (12=() !=-l && il=i2);0; 0;return il-=-l && i2=-l;catch(FileNotFoundExceptione)数据字节输出流写入卬(0x00611 (short )98(0x0062)A人字节流 goo 0000|0H° W0M00 OOOOpl 10 001?数据字节输入流读取2字节,short值为2字节,short值为 97; char值为98; char值为'b'lose()lose()方4字节,int值为6357090(0x00610062)法,则Recei veCardJFrame的()方法捕获到lOExcept ion异常,循环结束。3.3 字符输入/输出流类i.字符流3-5什么是字符流它与字节流有哪些区别【答】字符流本质上是字节流,以字符为单位读/写字节流,各字符编码及长度由字符 集确定。3-6如何判断各种输入流什么时候结束【答】根据不同的输入流,判断输入流结束的条件不同。主要有两种方式,一是通过返 回值,二是抛出异常。InputStr

温馨提示

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

评论

0/150

提交评论