Java程序设计案例教程(第二版)周怡、张英主编。第6章 习题答案
- 格式:doc
- 大小:68.00 KB
- 文档页数:10
一、判断题:对;错;对;对;错二、选择题: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类的对象。
第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参考答案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以上版本的操作系统,可以打开[控制面板]窗口,双击其中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。
习题一1.简述面向对象软件开发方法的重要意义。
【答】:面向对象的软件开发方法按问题论域来设计模块,以对象代表问题解的中心环节,力求符合人们日常的思维习惯,采用―对象+消息‖的程序设计模式,降低或分解问题的难度和复杂性,从而以较小的代价和较高的收益获得较满意的效果,满足软件工程发展需要。
2.解释下面几个概念:1)对象2)实例3)类 4)消息 5)封装 6)继承 7)多态【答】:1)对象:就是现实世界中某个具体的物理实体在计算机中的映射和体现,是由属性和操作所构成的一个封闭整体。
2)实例:是对象在计算机内存中的映像。
3)类:是描述对象的―基本原型‖,是描述性的类别或模板,即对一组对象的抽象。
它定义一组对象所能拥有的共同特征,用以说明该组对象的能力与性质。
4)消息:消息是对象之间进行通信的一种数据结构。
5)封装:封装性是保证软件部件具有优良的模块性的基础。
面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。
6)继承:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
7)多态:多态性是指一个名字具有多种语义,即指同一消息为不同对象所接受时,可以导致不同的操作。
3.对象―汽车‖与对象―小汽车‖是什么关系,对象―汽车‖与―轮胎‖又是什么关系?【答】:对象―汽车‖与对象―小汽车‖具有继承关系,即对象―小汽车‖继承了对象―汽车‖。
―轮胎‖是对象―汽车‖的一个属性,所以对象―汽车‖包含―轮胎‖,二者是包含关系。
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.需3个步骤:1) 用文本编辑器编写源文件。
2) 使用编译源文件,得到字节码文件。
3) 使用解释器运行程序。
3. :\\\\;.;4. B5. 源文件的扩展名是,字节码的扩展名是。
6.D 。
习题二(第2章)1.2. { ( b) {;}( b) {;}}{() {("老师好");}}{( []) {();((12,236));((234,120));();();}}3.如果源文件中有多个类,但没有类,那么源文件的名字只要和某个类的名字相同,并且扩展名是就可以了,如果有一个类是类,那么源文件的名字必须与这个类的名字完全相同,扩展名是。
4.行尾风格。
习题三(第3章)1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
不是标识符。
2.关键字就是语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不是关键字。
3.,,,,,,,。
4.属于操作题,解答略。
5.属于操作题,解答略。
6. E {( [ ]) {'A''Z';( <)(" ");}}7.不可以。
习题四(第4章)1.110。
不规范。
2.新亲亲斤!!。
3.{( ) {(913112) {("是三等奖");}(20959627) {("是二等奖");}(87531659) {("是一等奖");{("未中奖");}}}4.;{( []) {();= 0; 存放电量= 0; 用户需要交纳的电费("输入电量:");();( <= 90 >=1){= *0.6计算的值}( <= 150 >=91){= 90*0.6+(90)*1.1计算的值}(>150){= 90*0.6+(150-90)*1.1+(150)*1.7计算的值}{("输入电量:""不合理");}("电费5.2f");}}5. E {( [ ]) {'A''Z';( <)("%2c");();( <)("%2c",(32));}}6. 5 {( []) {0;(1<=1000) {(0);}()("完数:");}}}7E {( []) {111;0;() {1;(1<){*i;};(>9876);;}("满足条件的最大整数:"+(1));}}习题五(第5章)1.用类创建对象时。
各章参考答案(1-9章)第一章【习题内容】1. Java语言有哪些特点?2.简述Java的运行机制。
3.简述Java应用程序的开发过程。
4.在计算机上安装、配置Java运行环境,并编辑运行本章中的例程。
【参考答案】1.面向对象、语法简单、平台无关性、安全性、分布式应用、多线程2. Java程序的运行必须经过编写、编译、运行三个步骤。
编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。
编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。
运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。
Java虚拟机(JVM)是运行Java程序的软件环境,Java解释器就是Java虚拟机的一部分。
在运行Java 程序时,首先会启动JVM,然后由它来负责解释执行Java的字节码,JVM把不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。
3.(1)安装JDK(2)配置环境变量(3)使用记事本编写java源文件(4)使用javac 编译java源文件(5)使用java运行java程序。
4.略。
第二章【习题内容】1. 现有语句:String s = "Example"; 则下面哪些语句是合法语句?A. s >>> = 3;B. s[3] = "x";C. int i = s.length();D. String t = "For " + s;E. s = s + 10;2.下面哪些是Java保留字?A. runB. defaultC. implementD. import3.下面声明float变量的语句合法的有:A. float foo = -1;B. float foo = 1.0;C. float foo = 42e1;D. float foo = 2.02f;E. float foo = 3.03d;F. float foo = 0x0123;4.以下哪两个表达式是等价的:A. 3/2B. 3<2C. 3*4D. 3<<2E. 3*2^2F. 3<<<25.分析下列程序的执行结果:(1)public class TestA{public static void main(String args[]){int i = oxFFFFFFF1;int j = ~i;System.out.println("j=" + j);}}(2)public class TestB{public static void main(String[] args){System.out.println(6 ^ 3);}}(3)public class FooBar{public static void main(String[] args){int i = 0, j = 5;tp:for(; ; i++){for( ; ; --j)if(i > j)break tp;}System.out.println("i=" + i + ",j=" + j);}}(4)public class TestC{public static void main(String[] args){int i = 1, j = 10;do{if(i++ > --j)continue;}while(i < 5);System.out.println("i=" + i + " j=" + j);}}【参考答案】1. C、D、E2.B、D3.A、D、F4.C、D5.(1)j=14(2)5(3)i=0,j=-1(4)i=5 j=6第三章【习题内容】1.什么叫引用类型,对象是引用类型吗?2.Java的访问限定修饰符有几种,各自的访问权限是什么?3.什么是类成员,什么是实例成员?它们之间有什么区别?4.如何创建自己的包,如何引入包?5.下面哪一个是类Myclass的构造方法?class Myclass{public void Myclass(){}public static Myclass(){}public Myclass(){}public static void Myclass(){}}6.设计一个动物类,它包含动物的基本属性,例如名称、身长、重量等,并设计相应的动作,例如跑、跳、走等。
Java面向对象程序设计(编著耿祥义张跃平)习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
(3)使用Java解释器(java.exe)运行Java程序3.Java的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.系统环境path D\jdk\bin;系统环境classpath D\jdk\jre\lib\rt.jar;.;5. B6. Java源文件的扩展名是.java。
Java字节码的扩展名是.class。
7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和 Xiti8.class (3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。
习题21. D2.【代码1】【代码2】错误 //【代码3】更正为 float z=6.89F;3.float型常量后面必须要有后缀“f”或“F”。
对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。
Java面向对象程序设计(编著耿祥义张跃平)习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
(3)使用Java解释器(java.exe)运行Java程序3.Java的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.系统环境path D\jdk\bin;系统环境classpath D\jdk\jre\lib\rt.jar;.;5. B6.Java源文件的扩展名是.java。
Java字节码的扩展名是.class。
7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。
习题21. D2.【代码1】【代码2】错误//【代码3】更正为float z=6.89F;3.float型常量后面必须要有后缀“f”或“F”。
对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。
习题参考答案——Java程序设计实用教程(第2版)第1章绪论1.1 (1)简单性——Java对系统软、硬件要求低;也比较容易学习。
(2)面向对象——Java是纯面向对象的语言。
(3)分布性——Java是面向网络的语言;支持数据分布和操作分布。
(4)鲁棒性——说明Java的健壮性很好,不会轻易造成系统崩溃。
(5)安全性——在防止非法入侵方面表现突出。
(6)体系结构中立——可以在任意的处理器上运行,也可在不同的平台上运行。
(7)可移植性——采用Java虚拟机机制,体现Java最初的开发理念,可跨平台运行。
(8)解释型——Java解释器直接对Java字节码进行解释执行,在单机上运行时速度较慢。
(9)高性能——由于Java字节码的设计,使得它能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。
用Java编写的程序在网络上运行时,其运行速度快。
(10)多线程——在Java中内置了对多线程的支持,使用多线程机制提高了程序性能,可以充分利用CPU。
(11)动态性——Java自身的设计使得它更适合于不断发展的环境,在Java类库中可以自由地加入新的方法和实例变量,而不会影响用户应用程序的执行。
1.2 Java在语法中取消了C/C++中具有的不安全的特性,如取消了指针,使得非法访问被杜绝。
用户不可能造成内存分配错误,也用不着专门提防可能出现的内存漏洞。
1.3 主要是由于Java程序可以方便地被移植到网络上的不同机器。
另外,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。
1.4 对象是类的特例。
1.5 略。
1.6 略。
第2章绪论2.1 略。
2.2 略。
2.3 进行SET PA TH设置是为了让系统找到Java.exe、Javac.exe在什么文件夹中;SET CLASSPA TH设置的作用是查找类路径变量的。
2.4 Java程序被分为两类,一类是Java Application程序,另一类是Java Applet程序。
第1章Java语言概述选择题1-1 在下列概念中,Java语言只保留了(B)A. 运算符重载B. 方法重载C. 指针D. 结构和联合1-2 下列关于Java语言特性的描述中,错误的是(D)A. 支持多线程操作B. Java 程序与平台无关C. Java 和程序可以直接访问Internet 上的对象D. 支持单继承和多继承1-3 下列关于Java Application 程序在结构上的特点的中,错误的是(C)A. Java 程序是由一个或多个类组成的B. 组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中C. Java 程序的文件名要与某个类名相同D. 组成Java程序的多个类中,有且仅有一个主类1-4 Java 程序经过编译后生成的文件的后缀是(C)A. .objB. .exeC. .classD. .java1-5 下列关于运行字节码文件的命令行参数的描述中,正确的是( A )A. 第一个命令行参数(紧跟命令字的参数)被存放在args[0]中B. 第一个命令行参数被存放在args[1]中C. 命令行的命令字被存放在args[0]中D.数组args[]的大小与命令行参数的个数无关判断题1-1 JavaC++的语言之前问世的。
(错)1-2 Java语言具有较好的安全性和可移植性及与平台无关等特性。
(对)1-3 Java语言中取消了联合的概念,保留了结构概念。
(错)1-4 Java语言中数据类型占内在字节数与平台无关。
(对)1-5 Java语言中可用下标和指针两种方式表示数组元素。
(错)1-6 Java语言的源程序不是编译型的,而是编译解释型的。
(对)1-7 操作系统中进程和线程两个概念是没有区别的。
(错)1-8 Java语言既是面向对象的又是面向网络的高级语言。
(对)1-9 Java 程序分为两大类:一类是Application 程序,另一类是Applet 程序。
前者又称Java应用程序,后者又称为Java小应用程序。