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课件

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章习题参考答案

第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++的结果是: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程序设计》课后习题参考答案】参考答案――武汉大学出版社习题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语言程序设计教程第二版习题解答

习题一1.简述面向对象软件开发方法的重要意义。
【答】:面向对象的软件开发方法按问题论域来设计模块,以对象代表问题解的中心环节,力求符合人们日常的思维习惯,采用―对象+消息‖的程序设计模式,降低或分解问题的难度和复杂性,从而以较小的代价和较高的收益获得较满意的效果,满足软件工程发展需要。
2.解释下面几个概念:1)对象2)实例3)类 4)消息 5)封装 6)继承 7)多态【答】:1)对象:就是现实世界中某个具体的物理实体在计算机中的映射和体现,是由属性和操作所构成的一个封闭整体。
2)实例:是对象在计算机内存中的映像。
3)类:是描述对象的―基本原型‖,是描述性的类别或模板,即对一组对象的抽象。
它定义一组对象所能拥有的共同特征,用以说明该组对象的能力与性质。
4)消息:消息是对象之间进行通信的一种数据结构。
5)封装:封装性是保证软件部件具有优良的模块性的基础。
面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。
6)继承:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
7)多态:多态性是指一个名字具有多种语义,即指同一消息为不同对象所接受时,可以导致不同的操作。
3.对象―汽车‖与对象―小汽车‖是什么关系,对象―汽车‖与―轮胎‖又是什么关系?【答】:对象―汽车‖与对象―小汽车‖具有继承关系,即对象―小汽车‖继承了对象―汽车‖。
―轮胎‖是对象―汽车‖的一个属性,所以对象―汽车‖包含―轮胎‖,二者是包含关系。
JAVA程序设计使用教程(第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语言程序设计第二版》中一些习题的答案,并对其中一些重要的概念进行解释和讨论。
第一章:计算机、程序和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中声明和使用变量?答案:变量是用于存储数据的内存位置。
Java程序设计精编教程第2版习题解答

习题解答习题一(第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.用类创建对象时。
JAVA程序设计案例教程(第二版)周怡、张英主编。第6章 习题答案

的类可以通过关键字 implements 实现多个接口。
(√)
5.Math 类是 final 类,因此在被其他类继承时其中的方法不能被重,正确的是(A)。
A.类是变量和方法的集合体
B.数组是无序数据的集合
C.抽象类可以实例化
D.类成员数据必须是共有的
2.下面对形参的说法中,正确的是(C)。
4.为什么要将类封装起来?封装的原则是什么? 答:因为封装的类之间互相独立、互不干扰,但可以通过规定的数据接口来进行数据交换,即能 保证数据的安全又能提高类之间相互组合的高效性。
一、将数据和对数据的操作组合起来构成类,类是一个不可分割独立单位。 二、类中既要提供与外部联系的方法,同时又要尽可能隐藏类的实现细节和保护自身数据 的安全性。
3.Java 设置了几种类成员的访问权限?各表示什么含义?
答:(1)公有的(public):说明该类成员可被所有类的对象使用 (2)保护的(protected):说明该类成员能被同一类中的其他成员,或其他子类成员,或同一 包中的其他类访问,不能被其他包的非子类访问。 (3)默认的(缺省):说明该类成员能被同一类中的其他成员,或同一包中的其他类访问,但 不能被其他包的类访问。 (4)私有的(private):说明该类成员只能被同一类中的其他成员访问,不能被其他类的成员 访问,也不能被子类成员访问。
译时多态性。 方法的覆盖:在子类中重定义父类的同名方法。方法覆盖表现为父类与子类之间的方法的
多态性,其中形参表、返回值类型也必须相同,且子类方法不能有比父类方法更严格的访问权 限。可以为编译时多态性或运行时多态性。
6.什么叫构造方法?构造方法的作用是什么?
答:构造方法是对象实例化时完成对象及其成员变量的初始化时所调用的一种特殊的方法。 构造方法的作用是在使用 new 关键字创建类的实例的时候被调用来对实例进行初始化。
Java程序设计教程与实训(第2版)习题参考答案(1-9章)

各章参考答案(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面向对象程序设计》(第2版)课后答案

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版)课后答案

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版-习题参考答案

习题参考答案——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程序。
Java程序设计-精编教程(第2版)习题解答

Scanner read=new Scanner(System.in);
CalendarBean cb=new CalendarBean();
int year=2000,month=1;
System.out.println("输入年:");
year=read.nextInt();
System.out.println("输入月:");
2.新亲亲斤!!。
3.
public class JudgeAward {
void giveMess(int number) {
if(number==9||number==131||number==12) {
System.out.println(number+"是三等奖");
}
else if(number==209||number==596||number==27) {
if(sum>9876)
break;
n++;
} System.out.println("满足条件的最大整数:"+(n-1)); } }
习题五(第 5 章)
1.用类创建对象时。 2.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不 同,或者是参数的类型不同。可以。 3.可以。不可以。 4.不可以。 5.一个类通过使用 new 运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内 存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。 6.CD。 7.【代码 1】【代码 4】。 8.sum=-100。 9. 27。 10.100 和 20.0。
Java程序设计案例教程 第2版 第6章 继承和多态

Java程序设计案例教程
幻灯片 4,共38页
4
6.1.2 继承的实现
❖ 声明子类使用extends关键字
▪ 它的含义是扩展基类,即继承基类。
[类修饰符] class 类名 [extends 基类] { [成员变量声明] [getters和setters方法] [构造方法定义] [成员方法定义]
}
}
Java程序设计案例教程
幻灯片 9,共32页
9
成员变量的隐藏
❖ 属性隐藏时
▪ 当子类执行继承自父类的方法时,处理的是继承自父类的变量 ▪ 当子类执行自己定义的方法时,处理的是子类自己定义的变量 ▪ 若在第二种情况,仍希望调用父类的属性,需要使用super关键字
Java程序设计案例教程
幻灯片 10,共38页
}
} public class Student extends Person {
String address = "高浪西路1600";
public class Test { public static void main(String[] args) { Student s = new Student();
▪ 在子类中基类的成员变量被隐藏。 ▪ 子类仍然继承了基类的成员变量,只是将其名字隐藏
public class Person {
String name = "程艳";
String address = "中南路8号";
public void showDetail() {
System.out.println("name=" + name + ",address=" + address);
Java语言程序设计(第2版)第1-6章课后习题答案

第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小应用程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法的覆盖:在子类中重定义父类的同名方法。方法覆盖表现为父类与子类之间的方法的多态性,其中形参表、返回值类型也必须相同,且子类方法不能有比父类方法更严格的访问权限。可以为编译时多态性或运行时多态性。
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。