Java程序设计案例教程(第二版)周怡、张英主编。第6章 习题答案

合集下载

JAVA程序设计案例教程 周怡 张英 主编第6章习题参考答案

JAVA程序设计案例教程 周怡 张英 主编第6章习题参考答案

一、判断题:对;错;对;对;错二、选择题:A CB B DD D A B三、填空题:1、多类性继承性封装性2、构造方法3、继承final4、this super5、Object四、略五、1、绘图工具类成员变量:点、颜色等;成员方法:抽象方法:画(在它的子类中实现,如:画圆形的工具、画矩形的工具等)2、class Complex {private double x;//实部private double y;//虚部public Complex(){}/**构造函数* @param x 实数部分* @param y 虚数部分*/public Complex(double x,double y){super();this.x = x;this.y = y;}/**求模* @return 该复数的模*/public double mod(){return x * x + y * y;}/**复数间加法* @param complex 加数* @return 计算结果*/public Complex add(Complex complex){ double x = this.x + complex.x;double y = this.y + complex.y;return new Complex(x,y);}/**复数与实数的加法* @param a 加数* @return 计算结果*/public Complex add(double a){return this.add(new Complex(a,0));}/**复数间减法* @param complex 减数* @return 计算结果*/public Complex subtract(Complex complex){ double x = this.x - complex.x;double y = this.y - complex.y;return new Complex(x,y);}/**复数与实数的减法* @param a 减数* @return 计算结果*/public Complex subtract(double a){return subtract(new Complex(a,0));}/**复数间乘法* @param complex 乘数* @return 计算结果*/public Complex multiply(Complex complex){double x = this.x * complex.x - this.y * complex.y;double y = this.y * complex.x + this.x * complex.y;return new Complex(x,y);}/**复数间除法* @param complex 除数* @return 计算结果*/public Complex divide(Complex complex){double x = (this.x * complex.x + this.y * complex.y) / (complex.mod()); double y = (this.y * complex.x - this.x * complex.y) / (complex.mod()); return new Complex(x,y);}public String toString(){StringBuffer sb = new StringBuffer();if(x != 0){sb.append(x);if(y > 0){sb.append("+" + y + "i");}else if(y < 0){sb.append(y + "i");}}else{if(y != 0){sb.append(y + "i");}}if(x == 0 && y == 0){return "0";}return sb.toString();}public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}}public class TestComplex {public static void main(String[] args) {Complex a = new Complex(2,0.5);Complex b = new Complex(0.5,2);System.out.println("(" + a + ")+(" + b + ")=" + a.add(b));System.out.println("(" + a + ")+" + 2 + "=" + a.add(2));System.out.println("(" + a + ")-(" + b + ")=" + a.subtract(b));System.out.println("(" + a + ")-" + 2 + "=" + a.subtract(2));System.out.println("(" + a + ")*(" + b + ")=" + a.multiply(b));System.out.println("(" + a + ")/(" + b + ")=" + a.divide(b));}}3、class C{C(){System.out.println("创建了一个C类的对象。

最新java大学实用教程(第二版附课后练习答案第6章字符串与正则表达式ppt课件

最新java大学实用教程(第二版附课后练习答案第6章字符串与正则表达式ppt课件

System.out.println(date.toString());
System.out.println(stu.toString());
System.out.println(tv.toString());
}
}
class Student{
String name;
double score;
Student(String name,double score){
有时,我们需要将数字转化为字符串,可以使用String 类的下列类方法:
public String valueOf(byte n) public String valueOf(int n) public String valueOf(long n) public String valueOf(float n) public String valueOf(double n) 我们可以使用Long类中的下列方法,得到整数的各种进制数的 表示。
String 类还提供了一个方法: public char[] toCharArray() 字符串对象调用该方法可以初始化一个字符数组,该 数组的长度与字符串的长度相等,并将字符串对象的 全部字符复制到该数组中。 例子6_4在这个例子中用户在键盘上输入字符串,程序实 现将其加密然后输出的目的。
返回
5.字符串与基本数据的相互转化 ng包中的Integer类调用其类方法: public static int parseInt(String s) 可以将“数字”格式的字符串,如“12387”,转化为int型 数据。 类似地,使用ng包中的Byte、Short、Long、Float、 Double类调相应的类方法: public static byte parseByte(String s) public static short parseShort(String s) public static long parseLong(String s) public static double parseFloat(String s) public static double parseDouble(String s) 可以将“数字”格式的字符串,转化为相应的基本数据类型。

Java程序设计案例教程(第二版)周怡、张英主编。第7章习题参考答案

Java程序设计案例教程(第二版)周怡、张英主编。第7章习题参考答案

第7章包与异常处理习题参考答案:一、判断题1.在编程中,可以不用进行异常的处理,因为有时发生的异常并不会影响程序的正常运行_____×__。

2.异常处理一般可用try ……catch语句进行处理的____√___。

3.try ……catch语句不能进行嵌套使用_×______。

4.如果觉得系统给出的异常类不够使用,也可能定义自己的异常类,自己定义的异常类一般继承Exception类(或其子类)___√____。

5.try……catch……finally语句中,三个关键字必须同时使用,才能达到异常处理的效果_____×__。

6.使用import 导入一包时,可以将这个包的子包也一并导入__×_____。

二、选择题1.异常是指___D____。

A.程序中的语法错误B.程序的编译错误C.程序执行过程中遇到的事先没有预料到的情况D.程序执行过程中遇到的事先没有预料到的情况,或程序事先定义好的可能出现的意外情况2.如果一个程序中有多个catch语句,程序会__C_____。

A.每个catch都会执行一次B.把每个符合条件的catch语句都执行一次C.找到适合的异常类型后就不再执行其它catch语句D.找到适合的异常类型后还要执行其它catch语句3.下列关于finally说法正确的是__C_____。

A.finally语句应该放在所有catch语句的前面B.finally语句应该放在所有catch语句的后面C.无论程序是否找到合适的catch匹配,都会去执行finallyD.如果程序在前面找到了多个适合的catch匹配,就不再执行finally语句了4.在一个方法内抛出异常时,应该使用下列哪个子句____A___。

A. throwB. catchC. finallyD. throws5.下列描述中,错误的一个是____B___。

A. 异常抛出点后的代码在抛出异常后不再执行B. 一个try代码段后只能跟有一个catch代码段C. try 一般要和catch联合使用D. 在编写程序过程中,要考虑对异常的处理6.一个catch语句段一定要和下列哪一项配合使用__A_____。

JAVA语言程序设计教程第二版习题解答

JAVA语言程序设计教程第二版习题解答
1)– –a%b++ 2) (a>=1)&&a<=12?a:b) 3) f^(a>b) 4) (– –a)<<a。
【答】: Java的运算符主要由算术运算符、关系运算符、条件运算符、位运算符、逻 辑运算符以及赋值运算符。表达式由运算符、操作数和方法调用,按照语言 的语法规则构造而成的符号序列。 表达式的结构是: 1)– –a%b++的结果是:1 2)(a>=1)&&a<=12?a:b)的结果是:1 3)f^(a>b)的结果是:false 4)(– –a)<<a的结果是:0 5.Java中标准输入输出使用哪种系统类、使用哪个对象和方法?
对象“汽车”与对象“小汽车”是什么关系,对象“汽车”与“轮胎”又是什么关 系?
【答】: 对象“汽车”与对象“小汽车”具有继承关系,即对象“小汽车”继承了对象“汽 车”。“轮胎”是对象“汽车”的一个属性,所以对象“汽车”包含“轮胎”,二者 是包含关系。 简述Java语言的主要特点。
【答】: Java语言的主要特点:(1)简单性 (2)面向对象 (3)分布式 (4)健 壮性 (5)结构中立 (6)安全性 (7)可移植 (8)解释的(9)高性能 (10) 多线程 (11)动态性 5.简述Java语言与C/C++语言的主要差异。
public class Example02{ public static void main(String[] args){ System.out.print(0) int fib0=0; int fib1=1; int fib2=fib0+fib1 while(fib2<100){ fib0=fib1; fib1=fib2; fib2=fib1+fib0; System.out.print(","+fib1); } } } (3).产生0~20的随机整型,然后计算并打印它的结果:

java程序设计教程第二版课后答案

java程序设计教程第二版课后答案

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语言程序设计教程第二版习题解答

习题一‎1.‎简述面向‎对象软件开‎发方法的重‎要意义。

‎‎【答】:‎面向对‎象的软件开‎发方法按问‎题论域来设‎计模块,以‎对象代表问‎题解的中心‎环节,力求‎符合人们‎日常的思维‎习惯,采用‎―对象+消‎息‖的程序‎设计模式,‎降低或分解‎问题的难度‎和复杂性‎,从而以较‎小的代价和‎较高的收益‎获得较满意‎的效果,满‎足软件工程‎发展需要。

‎‎2.解释‎下面几个概‎念:‎1)对象‎2)实例‎3)类 4‎)消息 5‎)封装 6‎)继承 7‎)多态‎【答】:‎1)‎对象:就‎是现实世界‎中某个具体‎的物理实体‎在计算机中‎的映射和体‎现,是由属‎性和操作‎所构成的一‎个封闭整体‎。

‎2)实例‎:是对象在‎计算机内存‎中的映像。

‎3‎)类:是‎描述对象的‎―基本原型‎‖,是描述‎性的类别或‎模板,即对‎一组对象的‎抽象。

它‎定义一组对‎象所能拥有‎的共同特征‎,用以说明‎该组对象的‎能力与性质‎。

‎4)消息‎:消息是对‎象之间进行‎通信的一种‎数据结构。

‎5‎)封装:‎封装性是保‎证软件部件‎具有优良的‎模块性的基‎础。

面向对‎象的类是封‎装良好的‎模块,类定‎义将其说明‎(用户可见‎的外部接口‎)与实现(‎用户不可见‎的内部实现‎)显式地‎分开,其内‎部实现按其‎具体定义的‎作用域提供‎保护。

‎6)‎继承:继承‎性是子类自‎动共享父类‎数据结构和‎方法的机制‎,这是类之‎间的一种关‎系。

‎7)多‎态:多态性‎是指一个名‎字具有多种‎语义,即指‎同一消息为‎不同对象所‎接受时,可‎以导致不‎同的操作。

‎‎3.‎对象―汽车‎‖与对象―‎小汽车‖是‎什么关系,‎对象―汽车‎‖与―轮胎‎‖又是什么‎关系?‎‎【答】:‎对象‎―汽车‖与‎对象―小汽‎车‖具有继‎承关系,即‎对象―小汽‎车‖继承了‎对象―汽车‎‖。

―轮‎胎‖是对象‎―汽车‖的‎一个属性,‎所以对象―‎汽车‖包含‎―轮胎‖,‎二者是包含‎关系。

JAVA程序设计使用教程(第2版)答案

JAVA程序设计使用教程(第2版)答案
2
}//end speak() }//end class
第二章习题答案
一、 简答题 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(关键字) ,长度,7st 3.Java 提供了哪些数据类型,全部写出来。
//3、编程,根据考试成绩的等级打印出分数段,优秀为 90 以上,良好为 80~90,中等 为 70~79,及格为 60~69,60 以下为不及格,要求采用 switch 语句。 public class XT00203 { public static void main(String args[]) { int a[]={85,95,65,53,77,68,45,99,100}; int i,l; for (i=0;i<=a.length;i++){ l=a[i]/10; switch(l) { case 9: case 10: System.out.println("成绩是:"+a[i]+":等级是"+"优秀"); break; case 8: System.out.println("成绩是:"+a[i]+":等级是"+"良好"); break;

java语言程序设计第二版习题答案

java语言程序设计第二版习题答案

java语言程序设计第二版习题答案Java语言程序设计第二版习题答案Java语言程序设计是一门广泛应用于软件开发领域的编程语言。

无论是初学者还是有经验的开发人员,都可以通过学习Java语言来提升自己的编程能力。

为了帮助读者更好地掌握Java语言的知识,本文将提供《Java语言程序设计第二版》中一些习题的答案,并对其中一些重要的概念进行解释和讨论。

第一章:计算机、程序和Java1.1 问题:编写一个Java程序,输出“Hello, World!”。

答案:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```1.2 问题:Java应用程序的执行过程是怎样的?答案:Java应用程序的执行过程可以分为三个阶段:编辑、编译和运行。

首先,我们使用文本编辑器编写Java源代码文件,文件的扩展名为.java。

然后,使用Java编译器将源代码文件编译成字节码文件,文件的扩展名为.class。

最后,使用Java虚拟机(JVM)加载字节码文件并执行程序。

第二章:基本程序设计2.1 问题:编写一个Java程序,计算两个整数的和。

答案:```javaimport java.util.Scanner;public class Sum {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter the first number: ");int num1 = input.nextInt();System.out.print("Enter the second number: ");int num2 = input.nextInt();int sum = num1 + num2;System.out.println("The sum is " + sum);}}```2.2 问题:什么是变量?如何在Java中声明和使用变量?答案:变量是用于存储数据的内存位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
return "0";
方法的覆盖:在子类中重定义父类的同名方法。方法覆盖表现为父类与子类之间的方法的多态性,其中形参表、返回值类型也必须相同,且子类方法不能有比父类方法更严格的访问权限。可以为编译时多态性或运行时多态性。
6.什么叫构造方法?构造方法的作用是什么?
答:构造方法是对象实例化时完成对象及其成员变量的初始化时所调用的一种特殊的方法。
}
}
//类Draw_Clean继承抽象类Draw_Eraser并覆盖抽象方法getEraser()
classDraw_CleanextendsDraw_Eraser
{
publicvoidgetEraser()
{
System.out.println("橡皮擦选项:选择橡皮擦>>>选中需要清除内容>>>确定");
运行时多态性:在编译时不能确定、只有在运行时才能确定执行多个同名方法的哪一个。
五、编程题
1.考虑设计一个绘图工具的面向对象描述,写出代码框架,充分应用抽象、多态等方法。
classDraw_Graph
{
doubleline;
doublecircle;
//定义构造方法
publicDraw_Graph()
* @return计算结果
*/
public Complex multiply(Complex complex){
double x = this.x * complex.x - this.y * complex.y;
double y = this.y * complex.x + this.x * complex.y;
return new Complex(x,y);
}
/**复数与实数的减法
* @param a减数
* @return计算结果
*/
public Complex subtract(double a){
return subtract(new Complex(a,0));
}
/**复数间乘法
* @param complex乘数
if(x != 0){
sb.append(x);
if(y > 0){
sb.append("+" + y + "i");
}else if(y < 0){
sb.append(y + "i");
}
}else{
if(y != 0){
sb.append(y + "i");
}
}
if(x == 0 && y == 0){
class Complex {
private double x;//实部
private double y;//虚部
public Complex(){}
/**构造函数
* @param x实数部分
* @param y虚数部分
*/
public Complex(double x,double y){
super();
9.Java语言的多态性的实现主要有(B)两种方式。
A.设计时和运行时B.编译时和运行时
C.设计时和编译时D.编译时和存储时
三、填空题
1.面向对象程序设计方法最重要的特性是继承性、封装性和多态性。
2.构造方法是一个特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。
3.为了不允许其他子类继承,简单数据类型的包装类都被声明为final。
g.getCircle(3);
//创建并实例化类Draw_Clean对象c
Draw_Clean c=newDraw_Clean();
//调用类Draw_Clean方法get.Eraser()
c.getEraser();
}
}
2.编写一个复数类,具有实部、虚部成员变量,可以完成加、减、乘、获得实部和虚部等方法,并编写一个主类对其进行测试。
A.1 B.2 C.3 D.任意
7.下面有关接口的说法,正确的是(D)。
A.接口与抽象类是相同的概念
B.实现一个接口必须实现接口的所有方法
C.接口之间不能有继承关系
D.一个类可以实现多个接口
8.Java语言的多态现象,主要表现在(A)两个方面。
A.方法重载和成员覆盖B.方法重载和抽象对象
C.抽象对象和成员覆盖D.创建接口和方法继承
A.interface a{ B. interface a{
int I;int I=I;
void g(){}} void g(){}}
C.interface a{ D. interface a{
int I; int I=5;
protected void g();} void g();}
6.一个类可以同时继承或实现(D)个接口。
5.Math类是final类,因此在被其他类继承时其中的方法不能被重写。(×)
二、选择题
1.下列说法中,正确的是(A)。
A.类是变量和方法的集合体B.数组是无序数据的集合
C.抽象类可以实例化D.类成员数据必须是共有的
2.下面对形参的说法中,正确的是(C)。
A.必须有多个B.至少有一个
C.可以没有D.只能是简单变量
}
//实例方法重载,获取圆的半径
publicvoidgetCircle(doubleR)
{
System.out.println("作一半径为"+R+"的圆:选择圆心位置>>>确定");
}
}
//定义抽象类
abstractclassDraw_Eraser
{
publicvoidgetEraser()
{
System.out.println("选择橡皮擦");
this.x = x;
this.y = y;
}
/**求模
* @return该复数的模
*/
public double mod(){
return x * x + y * y;
}
/**复数间加法
* @param complex加数
* @return计算结果
*/
public Complex add(Complex complex){
二、类中既要提供与外部联系的方法,同时又要尽可能隐藏类的实现细节和保护自身数据的安全性。
5.什么是继承?什么是多态?方法的重载和覆盖有什么区别?
答:继承:由已有的类创建新类,从而自动实现类中方法和数据共享。
多态:同一名字的方法可以有多种实现,具有完全不同的执行效果或呈现出不同的执行结果状态。
方法的重载:在同一个类中,相同的方法名对应着不同的方法体,方法的参数也不相同。方法重载表现为同一个类中方法的多态性,一个类中可以定义多个参数不同的同名方法,属于编译时多态性。
(3)最后再将类实例化得到了现实世界中的实体在计算机世界中的映射——对象。
2.什么是类?什么是对象?他们之间的关系是怎样的?
答:类是一种复杂的数据类型,不仅包含数据,还包含对数据进行操作的方法;
对象是显示世界中事物的抽象表示。
类是具有相同或相似性质的对象的抽象。
3.Java设置了几种类成员的访问权限?各表示什么含义?
习题6
一、判断题
1.父类的引用变量可以指向它的子类的对象。(√)
2.Java语言中从一个父类可以派生出多个子类,一个子类可以有多个父类。(×)
3.在构造方法中如调用super(),则必须使其为该构造方法的第一句。(√)
4.Java语言中的接口可以继承,一个接口通过关键字extends可以继承另一个接口,一个Java的类可以通过关键字implements实现多个接口。(√)
double x = this.x + complex.x;
double y = this.y + complex.y;
return new Complex(x,y);
}
/**复数与实数的加法
* @param a加数
* @return计算结果
*/
public Complex add(double a){
}
}
publicclass习题6_五_1
{
publicstaticvoidmain(String[] args)
{
//创建并实例化类Draw_Graph对象g
Draw_Graph g=newDraw_Graph(4,3);
//调用类Draw_Graph方法getLine()、getCircle()
g.getLine(4);
return new Complex(x,y);
}
/**复数间除法
* @param complex除数
* @return计算结果
*/
public Complex divide(Complex complex){
double x = (this.x * complex.x + this.y * complex.y) / (complex.mod());
9.什么是接口?接口与抽象类有什么区别?
答:接口是一种特殊的数据类型(引用数据类型),主要用于描述某一行为功能所包含的行为方法的基本概况,即方法的名称、返回值类型以及形参表等,是一组常量和抽象方法的集合。
10.什么是编译时多态性?什么是运行时多态性?
答:编译时多态性:多个同名方法在编译时能够确定执行的是哪一个。
4.在Java方法体内中指向当前对象的引用是this,指向父类对象的引用是super。
相关文档
最新文档