




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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章 输入/输出流和文件操作5211“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,JS
4、P。3. 学时分配本课程学时为64学时,其中讲课48学时,实验16学时。学时分配见下表。章节(或内容)讲课实验合计Java概述22Java语言基础44类的封装、继承和多态628接口、内部类和Java API基础426异常处理22图形用户界面628多线程426输入/输出流和文件操作628网络通信628数据库应用224Web应用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 什么是跨平台特性J
8、ava怎样实现跨平台特性【答】跨平台特性是指一个应用程序能够运行于不同的操作系统平台。Java采用虚拟机技术支持跨平台特性,不同的操作系统上运行不同版本的Java虚拟机。1-3 Java源程序文件编译后生成什么文件程序的运行机制是怎样的 【答】Java将源程序文件(*.java)中的每个类编译生成一个字节码文件(.class),由Java虚拟机解释执行字节码文件。1-4 Java应用程序有哪两种形式它们的运行方式有什么不同【答】Java应用程序有两种:Application和Applet。Application是能够独立运行的应用程序,有控制台和图形用户界面两种运行方式。Applet是可以嵌入
9、Web页面的最小应用,它不能独立运行,必须嵌入超文本(*.html)中,由浏览器中的Java解释器解释执行。1.2 JDK1-5 环境变量path和classpath的作用分别是什么【答】path提供可执行文件(.exe)的路径;classpath提供类文件(.class)的路径。1-6 什么是包为什么需要包机制【答】包(package)是类的集合。包是Java区别类名字空间的机制。一个包中的多个类之间不能重名,不同包中的类名则可以相同。【习1.3】 为例的Line类增加以下方法:public double length() ava)中,可以使用package语句声明包,使用import语句导
10、入包,之后使用class或interface声明多个类或接口。其中,声明为public权限的类或接口只能有一个,且文件名必须与该类名相同。1-7 程序中的错误有哪几种分别在什么时刻被发现【答】语法错、语义错、逻辑错。编译时能够发现语法错,运行时能够发现语义错,运行时不能发现逻辑错。第2章 Java语言基础本章教学内容及要求如下: 掌握Java语言的基本语法成分,包括标识符与关键字、数据类型、运算符、表达式、变量声明等语言成分,掌握分支、循环等流程控制语句的语法和使用。特别注意与C/C+的不同之处。 掌握数组类型的声明和动态内存申请,掌握以基本数据类型和类的两种方式声明和使用字符串。 掌握Jav
11、a语言的方法声明和调用规则,掌握基本类型和引用类型作为方法参数和返回值的传递规则。 掌握MyEclipse程序调试技术。重点:数组的引用模型;使用静态方法,引用类型作为方法的参数和返回值。难点:位运算,二进制;递归算法。MyEclipse程序调试技术。2.1 语言成分1. 数据类型、变量及运算2-1 Java语言的基本数据类型有哪些引用数据类型有哪些【答】基本数据类型有:整数类型byte、short、int、long,浮点数类型float、double,字符类型char,布尔类型boolean;引用数据类型包括数组(array)、类(class)和接口(interface)。2-2 与C+语言
12、相比,Java语言的变量和常量声明有什么差别【答】Java语言没有全局变量,(成员)局部变量含义及变量声明格式与C+相同。Java语言没有宏替换,使用最终变量概念代替C+中的常量和宏替换。使用final关键字声明最终变量,只能赋值一次,这样既增加了常量功能,又避免全局变量和宏替换的副作用。2-3 Java语言的运算分哪些类型与C+语言相比,运算符及运算含义有哪些变化【答】Java语言有算术运算、关系运算、位运算、逻辑运算、赋值运算、强制类型转换、条件运算、括号运算、点运算、new、+字符串连接运算和instanceof运算等,其中+字符串连接和instanceof运算符是Java新增的,此外,
13、放弃了C+的sizeof运算符。与C+语言相比,Java语言的语法更为严谨,将C+中某些容易引起混淆的语法做了修订,编译时也将严格进行检查。在Java语言中,运算符及运算含义有变化的说明如下。 没有赋值功能的表达式不能作为语句。例如:int i=0;i+1; / 0 1 2 3 4 5 6 7 8 9 : ; < = > A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z | 修改上述程序段的for语句表达式如下,输出Uni
14、code汉字字符表。for (char ch='u4e00' ch<='u9fa5' ch+) . args) 度变换类型变换类型取值有:b(boolean)、c(字符)、C(字母大写)、d(十进制整数)、o(八进制整数)、x(十六进制整数)、e(浮点数指数形式)、f(浮点数小数形式)、s(字符串字母小写)、S(字符串字母大写)。参数索引指定第几个参数,省略时为默认次序。当指定宽度不足时,以实际宽度显示;可用变量指定宽度。例如:("%4d",1) .+%2$d=%1$d",55,10).+10=55”("%x&quo
15、t;, 0177) , k=('E'); . args)方法返回format指定格式的字符串,"%o"、"%x"分别指定八进制、十六进制整数格式。 类声明以下方法,分别返回整数的二、八、十六进制形式字符串。表2-2 public static String toBinaryString(int i) ;2-4 获得当前日期和时间的语句是_。【答】new Date() 或 () 或 ()2-5 获得当前日期月份的语句是_。【答】 ().get+1【习2.2】 判断指定字符串是否为Java关键字。以下程序将Java所有关键字排序后保存在key
16、words字符串数组中,判断一个字符串是否是Java关键字,算法需要在keywords数组中查找,若查找成功,则是Java关键字。以下采用二分法查找算法,其查找效率比顺序查找算法效率高。import 123atart();【答】执行Thread类声明的run()方法,该方法体为空,所以没有操作结果。2-6 设有T、R类声明如下,说明怎样使用这些实例创建、启动线程并执行有效操作public class T extends Thread tart();2. 线程对象的生命周期2-7 Thread类中有哪些方法能够改变线程对象的状态各由什么状态改变到什么状态【答】Thread类中改变和判断线程状态的
17、方法有:线程启动、线程睡眠、线程中断等。线程启动start()方法将NEW新建态的线程改变成运行态RUNNABLE;线程睡眠sleep()方法将当前线程由运行态进入等待态;线程中断interrupt()方法对当前线程设置运行中断标记。2.2 线程的同步机制2-8 什么是交互线程什么是线程互斥与同步说明线程互斥与同步机制怎样保证交互线程对共享变量操作的正确性,不产生与时间有关的错误。【答】共享变量的多个线程之间称为交互线程,它们执行时将因竞争共享变量的使用权而影响其他线程的运行结果,可能产生与时间有关的错误。交互线程之间存在竞争和协作两种关系。线程互斥指,采用加锁方式使若干交互线程串行地使用同一
18、共享资源,它是解决线程间竞争关系的手段。线程同步指,两个以上线程基于某个条件来协调它们的活动。一个线程的执行依赖于另一个协作线程的信号,当一个线程没有得到来自于另一个线程的信号时则需等待,直到信号到达才被唤醒。线程同步是解决线程间协作关系的手段。实验7 线程设计增加实验题如下。2-9 交通信号灯。设计一个表示四叉路口控制交通信号灯的图形用户界面,交通信号灯的属性包括方向(东西、南北)、颜色(红、黄、绿)、车道(左转、直行、右转)、显示时间(秒)等。4个方向的信号灯同时运行,其中东西向、南北向的信号相同。以两位数显示倒计时的秒数,超过百秒以A、B、C等代替,如A2表示102;经过指定延时时间,切
19、换信号灯状态。第3章 输入/输出流和文件操作本章教学内容及要求如下: 理解流的概念,理解流在文件操作中的作用;掌握通过Java各种字节流类和字符流类对类型文件和文本文件进行顺序处理和随机处理;熟悉在对象之间通过流传递数据的方法;了解Java的标准输入/输出方法。 掌握文件操作的基本方法,掌握对文件操作的File类,熟悉文件过滤器、文件对话框;了解RandomAccessFile随机存取文件类。重点:各种字节流类,字符流类,File类。 难点: 如何选择使用哪种字节流或字符流,掌握程序设计方法,而不是死记硬背。 操作系统的文件组织方式是树结构,递归算法。3.1 文件和流的概念3-1 什么是流流有
20、什么作用面向对象程序设计语言为什么需要使用流哪些场合需要使用流【答】流指数据传输。在面向过程的程序设计语言中,只有标准输入/输出和文件读写操作中存在数据传输,而标准输入/输出是文件操作和特例。在面向对象程序设计语言中,数据传输的应用范围更广,除了标准输入/输出和文件操作,在内存的对象之间、以及不同计算机运行的线程之间都需要进行数据传输。数据传输功能必须脱离于文件操作,相对独立。因此,面向对象程序设计语言使用“流”概念实现数据传输功能,将各种类型数据传输封装成各种流类,根据数据特性,应用程序选择采用相应流类传输数据。3-2 Java提供了哪些流类各种流类之间关系是怎样的什么场合需要使用什么流类
21、【答】Java提供了字节流类和字符流类,InputStream和OutputStream是字节输入/出流的根类,它们所有字节流约定读/写字节、读/写字节数组、关闭等操作方法,子类有文件字节流、数据字节流、对象字节流和管道字节流等;Reader和Writer是字符输入/出流的根类,它们为字符流约定读/写字符、读/写字符数组、关闭等操作方法,子类有文件字符流、缓冲字符流、管道流字符等。当在标准输入/出、读/写文件及内存变量之间传递数据时,需要使用流。3-3 Java语言中,流与文件操作有什么关系【答】Java提供文件流实现读/写文件数据操作。3.2 字节输入/输出流类1. 文件字节流3-4 为什么
22、InputStream的read()方法能够以-1表示字节流结束是否与整数-1相冲突【答】(int)-1的二进制形式为111111,调用(-1),实际上只写入低位1个字节,再调用()读取1字节,作为int整数最低1字节,高位补0,得到的值是255(000000000000000000000000),不是整数-1。因此,InputStream的read()方法能够以-1表示字节流结束。【习3.3】 使用字节流比较两个文件内容是否相同。以下equals()方法比较两个文件内容是否相同,算法有什么错误如何改正public static boolean equals(String filename1, String filename2) try FileInputStream fin1 = new FileInputStream(filename1); FileInputStream fin2 = new FileInput
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备租赁安全管理制度
- 设备销售门店管理制度
- 设计公司内部管理制度
- 评估公司公司管理制度
- 诊所医疗家具管理制度
- 诊所进货查验管理制度
- 财务系统支持管理制度
- 财务银行密钥管理制度
- 财政支付风险管理制度
- 货物申报规范管理制度
- GB/T 12206-2006城镇燃气热值和相对密度测定方法
- 《爱的教育》课外阅读指导课课件
- 奥林匹克精神
- 10以内序数(课堂)课件
- 2021年安徽省农业信贷融资担保有限公司招聘笔试试题及答案解析
- 精选芭蕾舞男女演员之间的潜规则汇总
- 房地产司法鉴定估价报告
- Q∕SY 1770.6-2014 连续管常规修井作业规程 第6部分:速度管柱作业
- 大型污泥脱水离心机机组安装及调试工法
- 国家重点保护野生植物(Ⅱ级)采集申请表
- 煤矿提升运输事故应急救援演练方案
评论
0/150
提交评论