Java程序设计实用教程_胡伏湘_清华大学出版社008习题答案
GD:Java程序设计实用教程_胡伏湘版习题答案
第三章习题答案一、简答题1.类的修饰符包括哪些?各起什么作用?包括访问控制符(表示被访问权限)、抽象类说明符abstract(说明是否是抽象类)、最终类说明符final(表示是否是最终类)。
2.什么是抽象类?什么是抽象方法?抽象方法与普通方法有什么不同?以abstract作为关键字,如果有的话,应该放在访问控制符后面,表示这个类是个抽象类。
抽象类中至少包含一个抽象方法,抽象方法是只声明了方法名和参数而没有定义方法体的特殊方法。
抽象类不能直接产生实例化一个对象,它只能被继承。
3.父类与子类是怎样建立关联的?如果父类和子类中都有一个同名的方法,在程序中调用这个方法,应该用什么关键字来区分?父类与子类是通过继承和派生建立关联的,父类可以派生出子类,可以被子类继续,子类可以继续父类的属性和方法。
如果父类和子类中都有一个同名的方法,通过关键字super和this区分,super表示调用父类的方法,而this表示调用的是子类的方法。
4.普通数据类型参数和引用数据类型在方法中的传递有什么不同?普通数据类型参数的传递采用值传递,在方法中对变量的改变不会影响到主程序的同名变量,引用数据类型在方法中的传递采用地址传递,在方法中对变量的改变使主程序的同名变量发生改变。
5.什么是构造方法?构造方法有什么特点?构造方法是一种特殊的方法,当用new命令每生成一个实例时,构造方法都会自动执行一次,而无须用户手工引用。
构造方法的特征:具有与类相同的名称,不含返回类型,不能在方法中用return语句返回一个值。
在类实例化时,它会由系统自动调用6.字符串类有哪两种?各有什么特点?ng语言核心包中定义了String和StringBuffer两个来封装对字符串的各种操作,它们都是final类,不能被其它类继承。
String类用于比较两个字符串、查找串中的字符及子串、字符串与其它类型的转换,String类对象的内容初始化后不能改变。
StringBuffer类用于内容可以改变的字符串,可将其它类型的数据增加、插入到字符串中,也可翻转字符串的的内容。
Java面向对象程序设计课后答案
Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class
执行java Xiti8得到的输出结果
I'm glad to meet you
9.属于操作题,解答略。
Exception in thread "main" ng.NoSuchMethodError: main
执行java xiti8得到的错误提示
Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8)
for(i=1;i<=1000;i++)
{ for(j=1,sum=0;j<i;j++)
{ if(i%j==0)
sum=sum+j;
}
if(sum==i)
Java面向对象程序设计
清华大学出版社
(编著 耿祥义 张跃平)
习题解答
建议使用文档结构图
(选择Word菜单→视图→文档结构图)
习题1
1.James Gosling
、、、、
2.
(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
输出110
if-else语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。
2.你好好酷!!
3.
public class Xiti3_3
Java 2实用教程(第三版)实验指导与习题解答
Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)上机实践1 初识JA V A ............................................................................... 错误!未定义书签。
实验1一个简单的应用程序 .................................................................. 错误!未定义书签。
实验2一个简单的J A V A A PPLET程序 .................................................... 错误!未定义书签。
实验3联合编译 ...................................................................................... 错误!未定义书签。
上机实践2 基本数据类型与控制语句...................................................... 错误!未定义书签。
实验1输出希腊字母表 .......................................................................... 错误!未定义书签。
实验2回文数 .......................................................................................... 错误!未定义书签。
实验3猜数字游戏 .................................................................................. 错误!未定义书签。
Java程序设计实用教程(课本习题解答)
习题 11.James Gosling2.需3个步骤:1)用文本编辑器编写源文件2)使用Java编译器(javac.exe)编译源文件,得到字节码文件。
3)使用java解释器(java.exe)来解释执行字节码文件。
3.1) 设置path对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量path。
如果曾经设置过环境变量path,可单击该变量进行编辑操作,将需要的值d:\jdk\bin加入即可(注意:修改系统环境变量path后要重新打开DOS窗口编译)。
或在DOS窗口输入命令行: set path=d:\jdk\bin(注意:用此方法修改环境变量每次打开DOS窗口都需要输入该命令行重新进行设置)。
2) 设置classpath对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量classpath。
如果曾经设置过环境变量classpath,可单击该变量进行编辑操作,将需要的值d:\jdk\jre\lib\rt.jar;.;加入即可。
或在DOS窗口输入命令行: set classpath= d:\jdk\jre\lib\rt.jar;.;。
4.(B)5.Java源文件的扩展名是”.java”,Java字节码的扩展名是”.class”6.(D)习题 21.(B)、(D)2.【代码1】【代码3】说明:最后一条语句如果为 byte z=127; //【代码4】无错最后一条语句如果为 byte x=127; //【代码4】有错(变量x与”int x=129L”重名) 3.需要特别注意的是float型常量后面必须要有后缀“f”或“F”。
《Java程序设计》课后习题参考答案
高等院校计算机基础教育规划教材《Java 程序设计》课后习题参考答案――武汉大学出版社习题1参考答案1.Java语言的特点有哪些?答:参考1.1.2防止直接访问数据变量看起来有些奇怪,但它实际上却对使用类的程序质量有极大的好处。
既然数据的单个项是不可访问的,那么惟一的办法就是通过方法来读或写。
因此,如果要求类成员内部的一致性,就应该通过类本身的方法来处理。
这种数据隐藏技术就是面向对象的重要特性——封装。
它将类的外部界面与类功能的实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用外部界面,通过访问接口实现对数据的操作。
即使实现细节发生了改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作,这使代码维护更简单。
2.简述封装的优点。
答:封装是一个简单而有效的思想,优点有:(1)模块化,对内成为一个结构完整、可进行自我管理、自我平衡、高度集中的整体。
(2)信息隐蔽,对外则是一个功能明确、接口单一、可在各种适合的环境下都能独立工作的有机单元。
面向对象的程序设计实现了对象的封装,使得用户不必关心诸如对象的行为是如何实现的这样一些细节。
通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也有利于对复杂对象的管理。
类的封装性使得代码的可重用性大为提高,这样的有机单元特别适合构建大型标准化的软件系统,具有很高的开发效率。
3.Java的基本工具有哪些?(1)javac 编译器(2)java 解释器(3)jdb Java 语言调试器(4)javadoc API文档管理器(5)javah 头文件生成器(6)appletviewer 小应用程序浏览器(7)javap 类文件反汇编器4.Java开发环境是如何配置的?答:对于Windows 2000以上版本的操作系统,可以打开[控制面板]窗口,双击其中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。
Java程序设计实用教程习题答案
《Java程序设计精典教程》习题答案编著:胡伏湘,雷军环清华大学出版社第5章习题解答一、简答题1.什么是AWT?AWT的基本思想是什么?答:AWT(抽象窗口工具包)是一组应用程序接口(API),其中包括各种Java 程序员用来创建图形用户界面(GUI)的类,这些类分别对应着Java图形用户界面的构成成份:组件和容器。
组件通常为图形用户界面中的可见部分,例如按钮(button)和标签(label)等。
容器是图形用户界面中容纳其他组件的部分,一个容器中可以容纳一个或多个组件,甚至还可以容纳其他的容器。
AWT的基本思想是将图形用户界面(GUI)看作一系列嵌套的构件,最外层是窗口这样的容器,容器内又可以包含其他的组件和容器。
这样由表及里,所有的构件构成了一个嵌套的树,一个构件在这棵树中的位置决定了它显示在屏幕上的位置以及事件的传递途径。
2.容器主要有哪些作用?Java中有哪些常见的容器。
它们之间有什么异同?答:容器组件的主要作用是包容其他组件或容器并按一定的方式组织排列它们,同一个容器的所有构件通常总是同时被显示和同时被隐藏的。
Java中常见的容器有Frame(框架)、Panel(面板)和Applet框架Frame是一个带有边框的独立的窗口,可以移动、放大、缩小、关闭。
是独立于Applet和浏览器的一个窗口,是Application程序最外层的容器。
面板是包含在窗口中的一个不带边框的区域。
不是一个单独的窗口,它只是包含在窗口中的一个区域,是可以将许多组件组合起来的一种容器,必须将面板添加到窗体中才能正常显示出来。
Applet也是无边框的容器,是Applet程序最外层的容器。
3.布局管理器的作用是什么?Java提供了哪几种布局管理器?答:布局管理器用来控制组件在容器中的摆放位置。
Java提供了5种布局管理器,它们是:顺序布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、网格包布局管理器(GridBagLayout)4.设计和实现图形用户界面的主要工作有哪些?答:设计和实现图形用户界面的工作主要有两个:一是创建组成界面的各种容器和组件,指定它们的属性和位置关系,根据具体需要排列它们,从而构成完整的图形用户界面的物理外观;二是定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户与用户的交互功能。
java程序设计实训教程参考答案
Graduate student1 = new Graduate();
student1.setName("zhang3");
student1.setScore(0, 78);
student1.setScore(1, 92);
(4)初始化、终止以及迭代部分都可以为空语句(分号不能省),三者均为空的时候,相当于一个无限循环,如果循环体中不包括break等语句,也没有可捕获的异常,那么将成为一个死循环,这在一般的程序设计中是应该能避免的。
(5)可以在for语句的初始化部分声明一个变量,它的作用域为整个for语句。
(6)在初始化部分和迭代部分可以使用逗号语句来进行多个操作。逗号语句是用逗号分隔的语句序列。
5.×6.×7.×8.√
二、选择题
1. A、B2. B、C、D
3. A、B4. D
5. C6. C
7. A8. A
三、填空题
1.顺序结构、选择结构、循环结构
2. for语句、while语句和do-while语句
3. if语句、switch语句
四
1.任何复杂的程序均可由三种控制结构表示,这三种结构是:顺序结构、选择结构和循环结构。
System.exit(0);
}
Vector sum = new Vector(A.getDimension());
for (int i = 0; i < A.getDimension(); i ++){
sum.element[i] = A.element[i] + B.element[i];
}
return sum;
Java语言程序设计课后习题答案全集
Java语言程序设计课后习题答案全集Java语言程序设计是一门广泛应用于软件开发领域的编程语言,随着其应用范围的不断扩大,对于掌握Java编程技巧的需求也逐渐增加。
为了帮助读者更好地掌握Java编程,本文将提供Java语言程序设计课后习题的全集答案,供读者参考。
一、基础知识题1. 代码中的注释是什么作用?如何使用注释.答:注释在代码中是用来解释或者说明代码的功能或用途的语句,编译器在编译代码时会自动忽略注释。
在Java中,有三种注释的方式:- 单行注释:使用"// " 可以在代码的一行中加入注释。
- 多行注释:使用"/* */" 可以在多行中添加注释。
- 文档注释:使用"/** */" 可以添加方法或类的文档注释。
2. 什么是Java的数据类型?请列举常见的数据类型。
答:Java的数据类型用来指定变量的类型,常见的数据类型有:- 基本数据类型:包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)、布尔型(boolean)。
- 引用数据类型:包括类(class)、接口(interface)、数组(array)等。
二、代码编写题1. 编写Java程序,输入两个整数,求和并输出结果。
答:```javaimport java.util.Scanner;public class SumCalculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个整数:");int num1 = scanner.nextInt();System.out.print("请输入第二个整数:");int num2 = scanner.nextInt();int sum = num1 + num2;System.out.println("两个整数的和为:" + sum);}}```三、综合应用题1. 编写Java程序,实现学生信息管理系统,要求包括以下功能:- 添加学生信息(姓名、年龄、性别、学号等);- 修改学生信息;- 删除学生信息;- 查询学生信息。
Java程序设计实用教程_胡伏湘_清华大学出版社7习题答案
2.Applet 是什么?简述 Applet 在浏览器中执行的工作原理。 答:Applet 也叫小应用程序,是一种在浏览器环境下运行的 Java 程序。当某一个浏览
器向服务器请求下载嵌入了 Applet 的 HTML 文件时,浏览器会根据 Applet 的名字和位置自 动把字节码文件从 WWW 服务器上下载到本地,然后浏览器利用本身拥有的 Java 解释器直 接执行该字节码文件。
2.编写一个 Applet,实现一个字符串沿正弦曲线移动。 import java.applet.*; import java.awt.*;
public class XT007202 extends Applet { int x,y; int h; Dimension d;
public void init() { d = getSize(); h = d.height / 2; x = 20;
5
《Java 程序设计精典教程》习题答案 编著:胡伏湘,雷军环 清华大学出版社
第 7 章习题解答
一、简答题
1.Applet 有什么安全限制? 答:Applet 不能加载客户端的类与定义客户端的方法,Applet 不能访问客户端的文件,
Java程序设计实用教程_胡伏湘_清华大学出版社006习题答案范文
《Java程序设计精典教程》习题答案编著:胡伏湘,雷军环清华大学出版社第6章习题解答一、简答题1.说明文本框和标签之间的区别?答:文本框定义了一个单行条形文本区,可以输出任何基于文本的信息,也可以接受用户的输入,并有事件响应。
标签可以显示一行静态的文本,它只起信息说明作用,不接受用户的输入,无事件响应。
2.试列举Java中常用的基本控制组件。
如果有二到三种取值可能,采用哪种组件合适?如果取值的可能大于5种,采用哪种组件合适?答:基本控制组件是图形用户界面的最小单位之一,它里面不再包含其他成分。
基本控制组件的作用是完成与用户的一次交互。
目前常用的基本控制组件有:标签(Label)、文本编辑区(TextField、TextArea)、按钮(Button)、复选框(Checkbox)、单选按钮(CheckboxGroup、Checkbox)、下拉列表(List或Choice)。
如果这两到三种取值是互斥的话,采用单选按钮表示比较合适,否则采用复选按钮表示;如果5种以上的取值只能多选一的话,采用Choice下拉列表,否则采用List下拉列表。
3.什么是选择事件?可能产生选择事件的GUI组件有哪些?答:选择事件是当选择项的选中状态发生变化时所引起的事件。
可能产生选择事件的GUI组件有下拉列表类(Choice)、列表类(List)复选按钮类(CheckBox)、检测盒菜单项(CheckboxMenuItem)4.设计一个菜单的步骤是什么?答:设计菜单的步骤是:⏹用MenuBar构造函数构造菜单栏对象。
⏹用Menu构造函数构造菜单对象。
⏹用MenuItem构造函数构造菜单项对象。
⏹用Menu类的add方法将菜单项加入菜单中。
⏹用MenuBar类的add方法将菜单加菜单栏中。
⏹用Frame类的setMenuBar方法将菜单栏加入窗口中。
5.有模式的对话框最突出的特点是什么?如果一个对话框的目的在于警告或提醒用户(例如删除数据库记录的确认),这个对话框应该是有模式的还是无模式的?答:有模式对话框是指打开后必须作出响应的对话框。
Java程序设计实用教程 课后习题答案
第1章Java概述1.3 Java对源程序文件的命名规则有什么要求?源程序文件编译后生成什么文件?答:如果源文件中有多个类,那么只能有一个类是public类。
如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是java;如果源文件没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名是java就可以了。
Java源程序文件(*.java)通过编译器javac.exe编译生成字节码文件(*.class)。
1.5 什么是平台无关性?Java怎样实现平台无关性?答:平台无关性,是指一个应用程序能够运行于不同的操作系统平台。
Java采用虚拟机技术支持平台无关性。
Java源程序(*.java)经编译生成的是一种中间代码,称为字节码文件(*.class),它由Java虚拟机解释执行,因而与操作系统平台无关。
Java 语言本身设计也体现出平台无关性。
如,int型整数占用32位,与操作系统是16位、32位或64位无关。
1.6 Java应用程序有哪两种形式?它们的运行方式有什么不同?答:Java应用程序有两种形式:Application和Applet。
Application是能够独立运行的应用程序,有控制台和图形用户界面两种运行方式。
Applet是可以嵌入Web页面的最小应用,它不能独立运行,必须嵌入到超文本(*.html)中,由浏览器中的Java解释器解释执行。
Applet只是Application的特殊形式。
第2章Java语言基础2.2 Java语言的基本类型有哪些?引用数据类型有哪些?答:基本类型包括数值类型和布尔类型(boolean),其中数值类型包括整数类型(byte、short、int、long)、浮点类型(float、double)、字符类型(char)。
引用数据类型包括数组、类(class)、接口(interface)。
2.7 什么是最终变量?如何声明最终变量?答:Java语言提供一种特殊的变量,只能进行一次赋值,称为最终变量,采用关键字final 声明。
Java程序设计(胡伏湘版)解析
1. 开发工具C/S 结构:VB 、delphi 、java 、PowerBuilder B/S 结构:ASP 、JSP 、PHP 、 2. VB →ASP → C →java →JSP第1章 Java 程序设计导论 1.1 Java 的三种版本一、Java 的产生:Java 是sun 公司在1995年推出的软件开发平台。
二、Java 语言的特点: ① 简单易学:类似C++ ② 面向对象③ 分布式:Java 是一种网络编程语言,适应编写基于Internet 的系统。
④ 平台无关性:先编译后解释,得到的字节码文件与平台无关,只要有Java 解释器即可。
Java 源文件字节码文件 机器码 (.java ) (.class) (.exe) 三、翻译方式解释方式:每翻译一句,就执行一句,如:Basic 语言编译方式:将整个程序翻译为机器指令以后,再一次性执行,如:C 语言 四、Java 的三种版本 J2SE (标准版):本书使用 J2EE (企业版) J2ME (微型版)1.2 Java 运行环境的配置1.java 的环境配置: 操作系统:Winxp 或Win2000 Jdk1.6:编译和解释JCreator V3绿色版 NetBeans IDE 7.3:编辑器 2.JDK 的组成: Javac.exe (编译器) Java.exe (解释器)Appletviewer.exe (Applet 浏览器)编译解释 开发工具1.3 Java程序举例一、Java程序的组成Java程序→→源文件→→类→→成员变量成员函数①一个Java程序由一个或多个源文件(.java)组成。
②每个源文件含有若干个类,编译后,每个类生成一个.class文件。
③每个类包括多个成员变量和成员函数。
④每个源文件最多只能有一个类为公共类,源文件名必须与公共类的类名相同。
⑤若一个Java程序使用标准类,则必须在程序首部写入import语句。
JAVA程序设计实用教程(第二版) 主编胡伏湘 雷军环 第2章习题参考答案
第二章习题答案一、简答题1.Java提供了哪些注释语句,功能有什么不同?Java语言提供了3种形式的注释:(1)// 一行的注释内容以//开始,最后以回车结束,表示从//到本行结束的所有字符均作为注释内容(2)/*一行或多行的注释内容*/从/*到*/ 间的所有字符(可能包括几行内容)都作为注释内容。
以上两种注释可用于程序的任何位置。
(3)/**文档注释内容*/当这类注释出现在任何声明之前时将会作特殊处理,它们不能再用在代码的任何地方。
这类注释意味着被括起来的正文部分,应该作为声明项目的描述,而被包含在自动产生的文档中。
2.识别下面标识符,哪些是合法的,哪些是非法的。
Ply_1,$32,java,myMothod,While,your-list,class,ourFriendGroup_$110,长度,7st合法标识符:Ply_1,$32,java,myMothod,ourFriendGroup_$110,While不合法标识符:class(关键字),长度,7st3.Java提供了哪些数据类型,全部写出来。
二、编程题//1.编写程序,从10个数中求出最大值、最小值及平均值。
public class XT00201 {public static void main(String args[]) {int i,s=0,min=Integer.MAX_V ALUE,max=Integer.MIN_V ALUE;float ave;int a[]=new int[10];for (i=0;i<2;i++) {a[i]=(int)(100*Math.random()); //取随机数if (max<a[i]) max=a[i];if (min>a[i]) min=a[i];s+=a[i];}System.out.println("最大值是:"+max);System.out.println("最小值是:"+min);System.out.println("平均值是:"+s/10);}}//2、编程求n!,设n=8。
java程序设计实用教程第版课后答案
第一章1.Java具有那些适合在Internet环境中的特点?【答】简单性和完全面向对象,平台无关性,安全性和可靠性,多线程,高效的网络编程。
2.Java保留、放弃了C/C++语言中哪些语法和面向对象机制?为什么需要这样做?【答】在语法规则方面,Java语言放弃了全程变量、goto语句、宏定义、全局函数以及结构、联合和指针数据类型,使Java语言更简单、更精练。
在面向对象概念方面,Java语言放弃了多元继承、友元类和运算符重载,采用“单重继承+接口”的方式代替多重继承,提供语言级的内存自动管理和异常处理方式,使Java语言更健壮、更安全、更高效。
3.Java对原程序文件的命名规则有什么要求?源程序文件编译后生成什么文件?【答】要求:源程序文件与类同名,文件扩展名为.java;编译后生成字节码文件(*.class)。
4.Java程序的运行机制是怎样的?与C++或其他语言有什么不同?【答】Java的每一个类都有一个class文件和它对应,Java在程序的启动的时候将程序运行需要用到的类加载到虚拟机中,根据Java的虚拟机规范进行连接(动态连接),程序的组装是在运行的时候完成的C++和其他的编译型的语言一样,它的程序的组装方式是一种传统的组装方式。
C++在编译的时候生成适用于某一平台的二进制代码,在连接的时候找到需要调用的库,然后将这些库中的代码连接进可执行程序之中,生成的可执行程序运行速度非常的快,但是可执行代码已经变成了一个整体,不可能再分开5.什么是平台无关性?Java是怎样实现平台无关性的?【答】平台无关性即Java程序的运行不依赖于操作系统。
Java采用虚拟机技术实现平台无关性。
程序由虚拟机解释执行,不同的操作系统上运行不同版本的Java 虚拟机。
6.Java应用程序由哪两种形式?他们的运行方式有什么不同?【答】Application和applet两种形式,其中application是能够独立运行的应用程序,既可以以DOS的命令方式运行,也可以以图形用户界面方式运行。
Java程序设计实用教程_胡伏湘_清华大学出版社009习题答案
《Java程序设计精典教程》习题答案编著:胡伏湘,雷军环清华大学出版社第9章习题解答一、简答题1.什么叫流?对流的分类通常有几种方式?答:流是指一组有顺序的、有起点和终点的字节结合。
流的分类方式有多种:⏹根据数据流动的方向,可分为输入流和输出流。
输入流:只能从中读取数据,而不能向其写出数据输出流:只能向其写出数据,而不能从中读取数据⏹根据处理数据的单位划分,可分为字符流和字节流字节流:以字节为单位进行数据传输,每次传送一个或多个字节字符流:以Unicode字符为单位进行数据传输,每次传送一个或多个字符⏹根据数据流所关联的是数据源还是其他数据流,可分为节点流和处理流节点流:直接从指定的位置(如磁盘文件或内存区域)读或写处理流:对一个巳存在的流的连接和封装,通过对所封装的流的功能调用实现数据的读/写功能,处理流并不直接连接到数据流。
2.Java的所有I/O流都是四个抽象类的子类,这四个抽象类是什么?答:⏹InputStream:是所有字节输入流的父类⏹OutputStream:是所有字节输出流的父类⏹Reader:是所有输入字符流的父类⏹Writer:是所有输出字符流的父类⏹3.写出下面这些输入输出流类的输入输出操作的特点。
(1)InputStream和OutputStream(2)DataInputStream 和DataOutputStream(3)FileInputStream和FileOutputStream(4)PrintStream(5)RandomAccessFile答:(1)一个字节一个字节地输入输出数据(2)按照不同的数据类型输入输出数据(3)一个字节一个字节地输入输出数据(4)把数据转化成字符串输出(5)能够随机访问普通文件4.File类的作用是什么?答:File类是I/O包中唯一能够代表磁盘文件本身的对象,使用File类,我们可以方便地建立与某磁盘文件的连接。
一个对应着某磁盘文件或目录的File对象一经创建,我们就可以通过调用它的方法来获得该文件或目录的属性,File类中还定义了一些对文件或目录进行管理、操作的方法,利用这些方法可以完成对文件和目录的建立、删除、查询、重命名等操作。
清华大学出版社 Java课后答案
I am child
I am child
二、选择题
1.B2.A3.C4.C5.A6.A7.C8.A9.D10.C 11.A12.C 13.C
三、简答题
6.Aabstract和final修饰符不能同时使用
B未给出类型定义,final int MAX_NUMBER=10;
C常量不能修改
三、简答题
2.there is no this value 3.Message four
i is 1,2,3
i is 1,2,3
i is 1,2,3
i is 4
第
参考答案:
实验指导:
3.10.1.第一处需要的代码:balance+=saveAccount;
第二处需要的代码:balance+=calculateInterst(Days);
或者把方法标志为非静态方法intgetdatae构造方法无返回值把void去掉f抽象类不能进行实例化把abstract去掉g子类不能继承父类的私有成员应把parent类中的mine属性的private修饰符去掉
第
参考答案:
习题集:
一、填空题
1.多态
2.java.exe
3.jdb.exe
4.标准字节码
(3)1、可以更好的组织类。
2、减少类名的冲突问题,同一包中的类名不能重复,不同包中的类名可以重复;
3、对包中的类起了一定的保护作用;
(4)1、直接引用指定的类,如import java.util.Vector;
2、引用一个包中的多个类,如import java.awt.*。更确切的说,它并不是引用java.awt中的所有类,而只引用定义为public的类,并且只引用被代码引用的类,所以这种引用方法并不会降低程序的性能;
Java程序设计(胡伏湘版)解析
1 •开发工具CIS结构:VB、delphi、java、PowerBuilderB/S 结构:ASP、JSP、PHP、2 • VB T ASP T ASP. netC T java T JSP第1章Java程序设计导论1. 1 Java的三种版本一、Java的产生:Java是sun公司在1995年推出的软件开发平台。
二、Java语言的特点:①简单易学:类似C++②面向对象③分布式:Java是一种网络编程语言,适应编写基于In ternet的系统。
④平台无关性:先编译后解释,得到的字节码文件与平台无关,只要有Java源文件编译.字节码文件------------------ 解释----- 机器码(.java)(.class)(.exe)三、翻译方式-解释方式:每翻译一句,就执行一句,如:Basic语言-编译方式:将整个程序翻译为机器指令以后,再一次性执行,如:四、Java的三种版本J2SE (标准版):本书使用Y J2EE (企业版)L J2ME (微型版)1. 2 Java运行环境的配置1. java的环境配置:操作系统:Winxp或Win2000开发工具「Jdk1.6 :编译和解释*-JCreator V3 绿色版NetBeans IDE 7.3 :编辑器2. JDK的组成:尸Javac.exe (编译器)Java.exe (解释器)Appletviewer.exe (Applet 浏览器)1. 3 Java程序举例Java解释器即可。
C语言一、Java程序的组成Java程序源文件类n [成员变量.经员函数①一个Java程序由一个或多个源文件(.java)组成。
②每个源文件含有若干个类,编译后,每个类生成一个.class文件。
③每个类包括多个成员变量和成员函数。
④每个源文件最多只能有一个类为公共类,源文件名必须与公共类的类名相同。
⑤若一个Java程序使用标准类,则必须在程序首部写入import语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java程序设计精典教程》习题答案
编著:胡伏湘,雷军环
清华大学出版社
第8章习题解答
一、简答题
1.什么是异常?异常产生的原因有哪些?
答:异常就是Java程序在运行过程中出现的错误。
这类错误使程序非正常终止,但通过修正后还可以继续运行。
异常产生的原因有:
(1)JVM检测到非正常的执行状态,这些状态可能由以下情况引起的:
⏹表达式违反了Java语言的语义,如除数为0
⏹装入或链接程序时出错
⏹超出了资源限制,如内存不足,这种异常是程序员无法预知的
(2)程序代码中的throw语句被执行
(3)因为代码段不同步而产生,可能的原因是:
⏹Thread(线程)的stop方法被调用
⏹JVM内部发生错误。
2.为什么Java的异常处理技术优于传统程序的异常处理技术?
答:在没有异常处理机制的程序设计语言中进行异常处理,通常是在程序设计中使用if-else或switch-case语句所能设想的到的错误情况,以捕捉程序中可能发生的错误。
在这种处理方式的程序中,对异常的监视、报告和处理的代码与程序中完成正常功能的代码交织在一起,即在完成正常功能的程序的许多地方插入了与处理异常有关的程序块。
这种处理方式虽然在异常发生点可以看到程序如何处理异常,但它干扰了人们对程序正常功能的理解,使程序的可读性和可维护性下降,并且由于人的思维限制,常常会遗漏一些意想不到的异常。
Java的异常处理机制是在程序中监视可能发生异常的程序块,将一个程序中的所有异常收集起来放到程序的某一段中处理,而不必在被监视的程序块中多处插入处理异常的代码,使完成功能的程序代码与进行异常处理的程序代码分开,增强了程序的可读性和可靠性,减少了编程人员的工作量,增加了程序的灵活性。
此外,这种机制可以及时有效地处理程序运行中的异常,可以预防因错误的程序代码或系统错误所造成的不可预期的结果发生,并且当这些不可预期的错误发生时,异常处理机制会尝试恢复异常发生前的状态或对这些错误结果做一些善后处理。
3.在Java代码中可用来处理异常的方式有哪些?
答:在Java代码中可用来处理异常的方式有两种:
(1)在可能产生异常的方法中,采用Java语言提供的try-catch-finally语句块处理异常
(2)如果一个方法可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应声明抛弃该种异常,表明该方法将不对此类异常进行处理,而由该方法的调用者负责处理。
此时需在方法声明中包含throws子句。
4.如果发生了一个异常,但没有找到适当的异常处理程序,则会发生什么情况?
答:如果发生了一个异常,但没有找到适当的异常处理程序,则Java系统会采用Java 异常处理机制预设处理方法来处理异常,即一旦程序发生异常,程序就会被终止并显示相应的错误信息给用户。
5.说明throw与throws有什么不同?
答:throw与throws的不同之处在于:
throw语句是一个独立的语句,用来明确地抛出一个异常,其作用是改变程序的执行流程,使程序跳到相应的异常处理语句中执行。
而throws语句总是和方法定义结合起来用,在有些情况下,不需要一个方法处理本身可能产生的异常,而是希望把异常向上移交给调用这个方法的方法来处理,就需要通过throws语句来实现。
6.在设计catch块处理不同的的异常时,一般应注意哪些问题?
答:应注意如下的问题:
(1)catch块中的语句应根据异常的不同执行不同的操作,比较通用的操作是打印异常的相关信息,包括异常名称、产生异常的方法名等。
(2)由于异常对象与catch块的匹配是按catch块的先后排列顺序进行的,所以在处理多异常进应注意认真设计各catch块的排列顺序。
一般地,处理较具体和较常见的异常的catch块应放在前面,而可以与多种异常相匹配的catch块应放在较后的位置。
二、编程题
1.编写一个程序,用来将作为命令行参数输入的值转换为数字,如果输入的值无法转换为数字,则程序应显示相应的错误消息,要求通过异常处理方法解决。
class XT008201 {
public static void main(String arg[]) {
try{
int i=Integer.parseInt(arg[0]);
System.out.println("输入的字符串可以转换为一个有效数字");
}
catch(NumberFormatException e) {
System.out.println("请输入一个有效数字");
}
}
}
// 在JCreator中如何输入命令行参数?
// Configure->Options->JDK T ools
// 然后在select T ool(下拉列表)里选择Run Application,
// 单击下面的Default,单击Edit按钮
// 在弹出的窗口里选Parameters,勾选Prompt for main method argume,
// OK 就可以了,
// 然后执行运行时会跳出一个对话框,需要在里面输入,
// 现在输入的就是args,要输入多个就以空格隔开
2.编写一个程序,用于将来自用户的两个数字接受为命令行参数。
将第一个数字除以第二次数字并显示结果。
代码应当处理引发的异常,即在输入的参数数量不是两个或用户输入0作为参数时引发异常。
class XT008202 {
public static void main(String args[]) {
int x,y,z;
try{
x=Integer.parseInt(args[0]);
y=Integer.parseInt(args[1]);
z=x/y;
System.out.println(x+"/"+y+"="+z);
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("输入的参数数量不是两个");
}
catch(ArithmeticException e){
System.out.println("第二个参数不能为零");
}
finally{
System.out.println("程序运行结束");
}
}
}
3.编写一个程序,说明在一个catch处理程序中引发一个异常时会发生什么情况。
public class XT008203 {
public static void main(String args[]) {
try {
throw new NullPointerException("空指针异常");
}
catch(NullPointerException e) {
System.out.println("捕捉第一次产生的空指针异常");
throw new ArithmeticException ("数学异常");
}
finally {
System.out.println("程序正常执行完毕!");
}
}
}
当在异常处理程序中引发了异常时,该异常应由原try块的外层程序来处理,如果没有捕获处理,异常将向上级传递。
4.编写一个可演示用户自定义异常用法的程序,该程序接受用户输入的学生人数,当
输入一个负数时,认为是非法的。
用户自定义异常捕获此错误。
import java.io.*;
class XT008204 {
public static void main(String args[]){
String s="";
int t;
while ( true ) {
try {
System.out.print("请输入学生人数:");
BufferedReader in=new
BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
t=Integer.parseInt(s);
if ( t<0 )
throw new NegException("人数不能为负数!");
System.out.println("你输入的人数是:"+t);
break;
}//end try
catch(IOException e) { System.out.println(e); }
catch(NegException e) { System.out.println(e); }
}//end while
}//end main()
}//end class
class NegException extends Exception{
public NegException(String message){
super(message);
}
}。