Java程序设计实用教程(课本习题解答)

合集下载

Java程序设计实用教程_胡伏湘_清华大学出版社008习题答案

Java程序设计实用教程_胡伏湘_清华大学出版社008习题答案

《Java程序设计精典教程》习题答案编著:胡伏湘,雷军环清华大学出版社第8章习题解答一、简答题1.什么是异常?异常产生的原因有哪些?答:异常就是Java程序在运行过程中出现的错误。

这类错误使程序非正常终止,但通过修正后还可以继续运行。

异常产生的原因有:(1)JVM检测到非正常的执行状态,这些状态可能由以下情况引起的:⏹表达式违反了Java语言的语义,如除数为0⏹装入或链接程序时出错⏹超出了资源限制,如内存不足,这种异常是程序员无法预知的(2)程序代码中的throw语句被执行(3)因为代码段不同步而产生,可能的原因是:⏹Thread(线程)的stop方法被调用⏹JVM内部发生错误。

2.为什么Java的异常处理技术优于传统程序的异常处理技术?答:在没有异常处理机制的程序设计语言中进行异常处理,通常是在程序设计中使用if-else或switch-case语句所能设想的到的错误情况,以捕捉程序中可能发生的错误。

在这种处理方式的程序中,对异常的监视、报告和处理的代码与程序中完成正常功能的代码交织在一起,即在完成正常功能的程序的许多地方插入了与处理异常有关的程序块。

这种处理方式虽然在异常发生点可以看到程序如何处理异常,但它干扰了人们对程序正常功能的理解,使程序的可读性和可维护性下降,并且由于人的思维限制,常常会遗漏一些意想不到的异常。

Java的异常处理机制是在程序中监视可能发生异常的程序块,将一个程序中的所有异常收集起来放到程序的某一段中处理,而不必在被监视的程序块中多处插入处理异常的代码,使完成功能的程序代码与进行异常处理的程序代码分开,增强了程序的可读性和可靠性,减少了编程人员的工作量,增加了程序的灵活性。

此外,这种机制可以及时有效地处理程序运行中的异常,可以预防因错误的程序代码或系统错误所造成的不可预期的结果发生,并且当这些不可预期的错误发生时,异常处理机制会尝试恢复异常发生前的状态或对这些错误结果做一些善后处理。

JAVA程序设计实用教程课后习题简答(第3版)

JAVA程序设计实用教程课后习题简答(第3版)

类中成员有几种访问权限?分别使用什么关键字? 【答】Java 定义了三个表示权限的关键字(public、protected、private) 。类有 2 种访问权限 分别是:公有 public,缺省。类中成员有 4 种访问权限分别是:公有 public,可被所有类访 问;保护 protected,可被同一包及包外所有子类访问;缺省,可被当前包中所有类访问; 私 有 private,只能被当前类访问。 3-8 this 引用有什么作用?this 引用有几种使用方法? 【答】Java 类中成员方法与 C 语言中函数还有一个重要差别就是, Java 类中每个成员方法 都可以使用代词 this 引用调用该方法的当前对象自己,this 引用有以下 3 种用法: (1)this 用于指代调用成员方法的当前对象自身,语法格式如下: this (2) 通过 this 可以调用当前对象的成员变量, 调用当前对象的成员方法。 语法格式如下: this.成员变量 this.成员方法([参数列表])注意:Java 中的 this 是引用方式,不是 C++中的指针方式。 (3)this 引用还可以用在重载的构造方法中,调用本类已定义好的构造方法。语法格式 如下: this([参数列表])注意:在构造方法中,this()引用必须是第一行语句。 3-9 说明类成员与实例成员的区别。 【答】Java 的类中可以包括两种成员:实例成员和类成员。 实例成员是属于对象的, 实例成员包括实例成员变量和实例成员方法。 类成员是属于类 的,需要用关键字 static 标识,也称为静态成员。具体区别如下: 1.实例成员变量与类成员变量 (1) 两者声明时的差别。当一个类声明成员变量时,没有使用关键字 static 声明的为实 例成员变量,使用关键字 static 声明的为类成员变量。 (2) 两者存储结构的差别。当创建一个对象时,系统会为每一个对象的每一个实例成员 变量分配一个存储单元, 使得属于不同对象的实例成员变量有不同的值; 而为每一个类成员 变量只分配一个存储单元,使得所有对象公用一个类成员变量。 (3) 两者引用方式的差别。实例成员变量属于对象,必须通过对象访问;类成员变量属 于类,既可以通过对象,也可以通过类访问。 2.实例成员方法与类成员方法 (1) 两者声明时的差别。当一个类声明成员方法时,没有使用关键字 static 声明的为实 例成员方法,使用关键字 static 声明的为类成员方法。 (2) 两者方法体中语句的差别。类成员方法只能访问类成员变量;实例成员方法既可以 访问类成员变量,也可以访问实例成员变量。在实例成员方法体中,可以使用 this 引用指代 当前对象;而在类成员方法体中,则不能使用 this 引用。 (3) 两者引用方式的差别。实例成员方法必须通过对象访问;类成员方法既可以通过对 象,也可以通过类访问。 3-10 什么是继承?继承机制的作用是什么?子类继承了父类中的什么?子类不需要父类中 的成员时怎么办?能够删除它们吗?Java 允许一个类有多个父类吗? 【答】继承性是面向对象的核心特征之一,是一种由已有的类创建新类的机制。被继承的类 称为父类或超类, 通过继承产生的新类称为子类或派生类。 继承机制是面向对象程序设计中 实现软件可重用性的最重要手段。

Java实用教程第版习题解答

Java实用教程第版习题解答
public class E {
public static void main (String args[ ]) {
int m=10,n=0;
while(【代码】) {
n++;
}
}
}
3.假设有int x=1;以下哪个代码导致“可能损失精度,找到int需要char”这样的编译错误。c
A.short t=12+'a'; B.char c ='a'+1; C.char m ='a'+x; D.byte n ='a'+1;
public class E {
public static void main (String args[ ]){
long[] a = {1,2,3,4};
long[] b = {100,200,300,400,500};
b = a;
}
}
5.下列程序标注的【代码1】,【代码2】的输出结果是什么?
public class E {
D)public static void main (String args[ ])
三、阅读程序
阅读下列Java源文件,并回答问题。
public class Person {
void speakHello() {
}
}
class Xiti {
public static void main(String args[]) {
3.while语句中的条件表达式的值是什么类型?
4.switch语句中必须有default选项码?
5.在while语句的循环体中,执行break语句的效果是什么?

《Java程序设计实用教程(第4版)习题解答和实验指导》第1~8章

《Java程序设计实用教程(第4版)习题解答和实验指导》第1~8章

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

在计算机学科的本科教学中,起着非常重要的作用。

“Java程序设计”是计算机科学与技术专业本科的专业基础限选课,开设本课程的目的是:进行程序设计和面向对象方法的基础训练;使用Java编程技术,设计解决操作系统、网络通信、数据库等多种实际问题的应用程序。

本课程通过全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术,使学生理解和掌握面向对象的程序设计方法,理解和掌握网络程序的特点和设计方法,建立起牢固扎实的理论基础,培养综合应用程序的设计能力。

本课程的先修课程包括:C/C++程序设计I、C/C++程序设计II、数据结构、操作系统、计算机网络、数据库原理等。

2. 教学基本要求本课程的基本要求如下。

①了解Java语言特点,理解Java Application应用程序的运行原理和方法。

掌握在JDK环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行和调试程序的操作。

②掌握Java语言中语句、数组、引用类型等基本语法成分的使用方法,通过类、接口、内嵌类型、包、异常处理等机制表达和实现面向对象程序设计思想。

③掌握Java的多种实用技术,包括图形用户界面、多线程、文件操作和流、使用URL 和Socket进行网络通信等。

④熟悉Java JDBC数据库应用的设计方法。

java程序设计课后练习答案

java程序设计课后练习答案

1.2.1 什么是硬件和软件?硬件是指计算机中可见的物理部分(比如:处理器,显示器,鼠标,键盘等),而软件提供不可见的指令(常用的软件程序:应用软件,系统软件,病毒等)。

1.2.2 列举计算机的 5个主要硬件组件。

中央处理器(CPU)、内存、存储设备、输入设备和输出设备、通信设备。

1.2.3 缩写“CPU”代表什么含义?Central Processing Unit1.2.4 衡量 CPU速度的单位是什么?Hz(赫兹)、MHz(兆赫兹)、GHz(吉赫兹)1.2.5 什么是比特? 什么是字节?比特就是二进制数字系统中的数,计算机中字节是最小的存储单元1.2.6 内存是用来做什么的?RAM代表什么?为什么内存成为RAM?计算机的内存由一个有序的字节序列组成,用于存储程序及程序需要的数据。

RAM代表随机访问存储器。

每个字节都有唯一的地址,使用这个地址确定字节的位置,以便于存储和获取数据,因为可以按任意顺序存取字节,所以内存也被称为: 随机访问存储器(RAM)。

1.2.7 用于衡量内存大小的单位是什么?字节1.2.8 用于衡量磁盘大小的单位是什么?B、KB、MB、GB1.2.9 内存和永久存储设备的主要不同是什么?内存和永久存储设备的不同是计算机的内存是一种易失的数据保存形式:断电时存储在内存中的信息就会丢失。

程序和数据被永久的存放在存储设备上,当计算机确实要用他们时再移入内存,因为从内存读取比从存储设备读取要快得多。

1.3.1 CPU 能理解什么语言?机器语言1.3.2 什么是汇编语言?什么是汇编器?汇编语言(assembly language)就是使用短的描述性单词(助记符)来表示每一条机器语言指令。

由于计算机不理解汇编语言,所以需要使用一种称为汇编器(assembler)的程序将汇编语言程序转换为机器代码。

1.3.3 什么是高级编程语言?什么是源程序?高级编程语言类似于英语,易于学习和使用,高级语言中的指令称为语句。

Java程序设计实用教程第4版习题解答与实验指导第1-8章

Java程序设计实用教程第4版习题解答与实验指导第1-8章

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

在计算机学科的本科教学中,起着非常重要的作用。

“Java程序设计”是计算机科学与技术专业本科的专业基础限选课,开设本课程的目的是:进行程序设计和面向对象方法的基础训练;使用Java编程技术,设计解决操作系统、网络通信、数据库等多种实际问题的应用程序。

本课程通过全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术,使学生理解和掌握面向对象的程序设计方法,理解和掌握网络程序的特点和设计方法,建立起牢固扎实的理论基础,培养综合应用程序的设计能力。

本课程的先修课程包括:C/C++程序设计I、C/C++程序设计II、数据结构、操作系统、计算机网络、数据库原理等。

2. 教学基本要求本课程的基本要求如下。

①了解Java语言特点,理解Java Application应用程序的运行原理和方法。

掌握在JDK 环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行和调试程序的操作。

②掌握Java语言中语句、数组、引用类型等基本语法成分的使用方法,通过类、接口、内嵌类型、包、异常处理等机制表达和实现面向对象程序设计思想。

③掌握Java的多种实用技术,包括图形用户界面、多线程、文件操作和流、使用URL 和Socket进行网络通信等。

④熟悉Java JDBC数据库应用的设计方法。

Java程序设计实用教程 课后习题答案

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程序设计实用教程习题答案

Java程序设计实用教程习题答案

Java程序设计实用教程习题答案《Java程序设计精典教程》习题答案编著:胡伏湘,雷军环清华大学出版社第5章习题解答一、简答题1.什么是AWT?AWT的基本思想是什么?答:AWT(抽象窗口工具包)是一组应用程序接口(API),其中包括各种Java程序员用来创建图形用户界面(GUI)的类,这些类分别对应着Java图形用户界面的构成成份:组件和容器。

组件通常为图形用户界面中的可见部分,例如按钮(button)和标签(label)等。

容器是图形用户界面中容纳其他组件的部分,一个容器中可以容纳一个或多个组件,甚至还可以容纳其他的容器。

AWT的基本思想是将图形用户界面(GUI)看作一系列嵌套的构件,最外层是窗口这样的容器,容器内又可以包含其他的组件和容器。

这样由表及里,所有的构件构成了一个嵌套的树,一个构件在这棵树中的位置决定了它显示在屏幕上的位置以及事件的传递途径。

2.容器主要有哪些作用?Java中有哪些常见的容器。

它们之间有什么异同?答:容器组件的主要作用是包容其他组件或容器并按一定的方式组织排列它们,同一个容器的所有构件通常总是同时被显示和同时被隐藏的。

Java中常见的容器有Frame(框架)、Panel(面板)和Applet 框架Frame是一个带有边框的独立的窗口,可以移动、放大、缩小、关闭。

是独立于Applet和浏览器的一个窗口,是Application程序最外层的容器。

面板是包含在窗口中的一个不带边框的区域。

不是一个单独的窗口,它只是包含在窗口中的一个区域,是可以将许多组件组合起来的一种容器,必须将面板添加到窗体中才能3.布局管理器的作用是什么?Java提供了哪几种布局管理器?答:布局管理器用来控制组件在容器中的摆放位置。

Java提供了5种布局管理器,它们是:顺序布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、网格包布局管理器(GridBagLayout)4.设计和实现图形用户界面的主要工作有哪些?答:设计和实现图形用户界面的工作主要有两个:一是创建组成界面的各种容器和组件,指定它们的属性和位置关系,根据具体需要排列它们,从而构成完整的图形用户界面的物理外观;二是定义图形用户界面的事件和各界面元素对不同事件正常显示出来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题 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”。

double型常量后面可以有后缀“d”或“D”,但允许省略该后缀。

4.public class Xiti2_4 {public static void main(String args[]) {char ch1='思',ch2='故',ch3='乡';System.out.println("'思'在Unicode表中的位置是: "+(int)ch1);System.out.println("'故'在Unicode表中的位置是: "+(int)ch2);System.out.println("'乡'在Unicode表中的位置是: "+(int)ch3);}}习题 31.输出结果是: 110.if-else语句的书写不够规范.尽管其中的复合语句中只有一条语句,但为了增强程序的可读性”{ }”最好不要省略(这是一个很好的编程风格)。

2.输出结果是: 不正正歪!!3.Array import java.util.Scanner;public class Xiti3_3 {public static void main(String args[]) {Scanner reader = new Scanner(System.in);System.out.println("输入彩票号回车确认");int number = reader.nextInt();Administrator person = new Administrator();person.giveMess(number);}}public class Administrator {void giveMess(int number) {int d1 = number%10; // 个位数int d2 = number%100/10 ; // 十位数int d3 = number%1000/100 ;// 百位数int d4 = number%10000/1000 ; // 千位数int d5 = number/10000 ;// 万位数if(d1==1){System.out.println("彩票是三等奖");}else if(d1==3){System.out.println("彩票是三等奖");}else if(d1==9){System.out.println("彩票是三等奖");}else{System.out.println("彩票不是三等奖");}if(d2*10+d1==29){System.out.println("彩票是二等奖");}else if(d2*10+d1==46){System.out.println("彩票是二等奖");}else if(d2*10+d1==21){System.out.println("彩票是二等奖");}else{System.out.println("彩票不是二等奖");}if(d3*100+d2*10+d1==875){System.out.println("彩票是一等奖");}else if(d3*100+d2*10+d1==326){System.out.println("彩票是一等奖");}else if(d3*100+d2*10+d1==596){System.out.println("彩票是一等奖");}else{System.out.println("彩票不是一等奖");}}}4.public class Xiti3_4{public static void main (String args[ ]){char cStart='а',cEnd='я';for(char c=cStart;c<=cEnd;c++){System.out.print(" "+c);}}}5.public class Xiti3_5{public static void main(String args[]){double sum=0,a=1;int i=1;while(i<=20){sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}6.class Xiti3_6{ public static void main(String args[]){ int sum=0,i,j;for(i=1;i<=1000;i++){ for(j=1,sum=0;j<i;j++){ if(i%j==0)sum=sum+j;}if(sum==i)System.out.println("完数:"+i);}}}7.public class Xiti3_7{public static void main(String args[]){int n=1;long sum=0;while(true){sum=sum+n;n++;if(sum>9999)break;}System.out.println("满足条件的最大整数:"+(n-1));}}习题 41.用该类创建对象时。

2.所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。

构造方法可以重载。

3.可以。

不可以。

4.不可以。

5.成员变量又分为实例变量和类变量,用static修饰的变量是类变量。

那么类变量和实例变量有什么区别呢?一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。

也就是说对象共享类变量。

6.C,D7.【代码1】,【代码4】8.sum=-100。

9.27。

10.**20##100习题 51.如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。

继承的成员或方法的访问权限保持不变。

如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,继承的成员或方法的访问权限保持不变。

如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。

只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。

子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,子类如此定义的方法称作子类重写的方法。

子类通过方法的重写可以隐藏继承的方法。

2.不可以。

3.abstract类。

4.假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。

5.A,C,D6.15.08.07.98.012习题 61.不能2.不能3.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。

那么该接口变量就可以调用被类实现的接口中的方法。

4.15.085.1815习题 71. 数组名.length2. 数组名.length3.falsetruefalse34.48.84. birdCar5.enum Color {红,黄,蓝,绿,黑}public class E {public static void main(String args[]) {for(Color a:Color.values()) {for(Color b:Color.values()){for(Color c:Color.values()) {if(a!=b&&a!=c&&b!=c)System.out.print(a+","+b+","+c+"|");}}}}}习题 81.仍然有效。

相关文档
最新文档