《Java面向对象程序设计》(第2版)课后答案

合集下载

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

java语言程序设计教程第二版习题解答
它定义一组对象所能拥有的共同特征,用以说明该组对象的能力与性质。
4) 消息:消息是对象之间进行通信的一种数据结构。
5) 封装:封装性是保证软件部件具有优良的模块性的基础。面向对象的类是封装良好
的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)
显式地分开,其内部实现按其具体定义的作用域提供保护。
End of j loop;i=2
(7)Java系统要求对对象进行相容性检查,以防止不安全的类型转换。
(8) Java语言最强大的特性之一是它的平台独立性,Java可以处理好平台之间的
移植问题。
(9)Java语言中没有全局变量的定义,只能通过公用的静态的变量实现,从而减少了
引起错误的地方。
6.什么叫Java虚拟机?什么叫Java的字节码?
(3)的运行结果如下:
运行结果取决于随机数。求随机数的阶乘,其中的一个运行结果如下:
3!=6
(4)的运行结果如下:
0 0 0
0 0 1
0 0 2
End of k loop;j=0
0 1 0
0 1 1
6.阅读下列程序,写出运行结果。
(1).
public class Example0401{
public static void main(String[] args){
for(int x=0;x<10;x++){
int y=x*x+x+41';
System.out.println("\t"+x+"\t"+y);
2 0 1

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的随机整型,然后计算并打印它的结果:

Java2面向对象程序设计答案

Java2面向对象程序设计答案
07 System.out.println(i+"+"+i+"="+(i+i)); // 印出内容
08 System.out.println(i+"*"+i+"="+(i*i)); // 印出内容
09 }
10 }
2-3 变量名称不能使用到Java的关键词,其他的英文字母、数字或底线皆可。此外,Java的变量有大小写之分,会将其判断成两个不同的变量。
字符类型会转换成short类型(字符会取其Unicode码)。
Int类型会转换成float类型。
若表达式中的某个操作数的类型为double,则另一个操作数也会转换成double类型。
布尔类型不能转换至其他的类型。
第五章 单数题参考答案
5-1 循序性结构是由上至下(top to down)的语句方式,一行语句执行完毕后,接着再执行下一行语句。这种结构的流程图如下所示:
例如:
(float)a/b // 将整数其中一个强制转换成浮点数,再与另一个整数相除
a/(float)b
(float)a/(float)b // 将两个整数同时强制转换成浮点数后再彼此相除
3-19 由于从键盘中所输入的数据Java都视为字符串,故必须通过转换的操作来达成。
数据类型 转换的method()
(b) 1A (X) 整数常数不能有数字以外的其他字符
(c) 3.20 (O)
(d) a5 (X) 整数常数不能有数字以外的其他字符
(e) $53 (X) 整数常数不能有数字以外的其他字符
(f) -67 (O)

JAVA面向对象程序设计(第二版)袁绍欣第五章答案

JAVA面向对象程序设计(第二版)袁绍欣第五章答案

JAVA⾯向对象程序设计(第⼆版)袁绍欣第五章答案1.⾯向对象的主要特征是什么?封装、继承、多态2.封装是如何实现的?封装通过访问控制符实现的,只有通过授权才能访问数据。

3.对象之间如何相互作⽤?作⽤的条件是什么?通过消息,拥有访问类数据成员或成员⽅法的权限。

4.protected修饰符的特点?只有包内其它类、⾃⼰和⼦类可以访问。

5.Object都有哪些⽅法?Object clone() //克隆对象boolean equals() //判断两个引⽤是否指向同⼀个对象void finalize() //释放对象int hashCode() //获得代表对象特有的 hashcode 整数String toString() //代表对象的字符串void notify() //线程同步中唤醒等待线程void wait()//线程同步中线程等待6.重载的⽅法之间⼀般有什么关系?⽅法名相同,⽽参数不同。

返回类型可以相同也可以不同。

7.⼦类覆盖⽗类⽅法需要什么条件?⼦类中定义与⽗类同名的⽅法⼀定是覆盖吗?⽅法名,参数,返回类型全部相同,内容不同。

不⼀定8.封装、继承和多态在⾯向对象设计中的⽤途是什么?封装可以保护类的数据成员,隐藏信息。

⼦类继承⽗类的属性和⽅法后,不⽤重新编写代码,提⾼了代码复⽤性。

多态最重要的是⼦类的功能可以被⽗类的引⽤调⽤,向后兼容。

9.设计Src和Dis两个类,Src中有⼀个被封装的属性,类型类 int ,每当通过特定⽅法更改Src对象中的这个属性后,Dis对象都能得到通知,并向Src发消息获得此属性值。

public class Src{int num;Dis dis;Src(int n){if(n>0)num = n;}void SetDis(Dis d){dis = d;}void Change(int n){if(n>0&&n!=num){num = n;dis.print();}}int getNum(){return num;}public static void main(String[] args) {Src src = new Src(1);Dis dis = new Dis(src);src.SetDis(dis);for(int i=0;i<5;i++){src.Change(i);}}}public class Dis{Src src;Dis(Src s){src = s;}void print(){System.out.println("num被改变为:"+src.getNum()); }}/*结果:num被改变为:2num被改变为:3num被改变为:4*/。

Java面向对象程序设计_习题解答(耿祥义)

Java面向对象程序设计_习题解答(耿祥义)

书后习题参考答案习题1 2习题2 3习题3 4习题4 10习题5 11习题6 14习题7 15习题9 16习题12 20习题13 25习题14 27习题15 28习题16 31习题17 39习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。

(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。

命令:javac –d . 文件名称.java(3)使用Java解释器(java.exe)运行Java程序。

命令:java 包名.类名3.Java的源文件是由若干个书写形式互相独立的类、接口、枚举等组成。

应用程序中可以没有public类,若有的话至多可以有一个public类。

4.新建JAVA_HOME系统环境变量,指向安装目录在系统环境变量path中增加内容:%JAVA_HOME%\bin;新建系统环境变量classpath并填入三项:.; %JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar5. 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.属于操作题,解答略。

Java面向对象程序设计课后习题参考答案

Java面向对象程序设计课后习题参考答案

public class San_4 {// 编写一个应用程序求1!+2!+ (20)/*** @param args//本题考查对循环的运用和对算法的编写*/public static void main(String[] args) {// TODO Auto-generated method stubint a;double b = 1, sum = 0;// 定义变量for (a = 1; a <= 20; a++) {// for循环实现该功能b = b * a;// 当a=1时,b=b*a=1,依此类推sum = sum + b;// 当a=1时,sum=sum+b=1,依次类推}for (int w = 1; w <= 19; w++) {// for循环打印出阶乘之和的形式来System.out.print(w + "!" + "+");}System.out.println("20!" + "=" + sum);// 最终输出阶乘之和double sum1 = 0, a1 = 1;int i = 1;while (i <= 20)// 用while循环实现该功能{sum1 = sum1 + a1;i++;a1 = a1 * i;}System.out.println("sum1=" + sum1);}}输出结果:1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!+20!=2.18203E18sum1=2.18203E18习题3_5public class San_5 {// 求100以内的素数/*** @param args//本题考查对for循环、break语句、if语句的运用*/public static void main(String[] args) {// TODO Auto-generated method stubint i, j;for (i = 2; i <= 100; i++) {// for循环从2开始,逐渐增1for (j = 2; j <= i / 2; j++) {// for循环从2开始,逐步增1if (i % j == 0) {// 如果i除以j的余数为0,则终止本次for循环break;}}if (j > i / 2) {// 如果j>i/2,输出iSystem.out.print(" " + i);}}}}2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 8389 97习题3_6public class San_6 {// 分别用while和for循环计算1+1/2!+1/3!+1/4!...的前20项和/*** @param args//本题考查同学们对while循环、for循环以及对输出字符串格式的运用 */public static void main(String[] args) {// TODO Auto-generated method stubint i = 1, k;double j = 1, m = 1, sum1 = 0, sum2 = 0;while (i <= 20) {// 用while循环实现sum1 = sum1 + j;i++;j = j * (1.0 / i);}System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}System.out.print("1/20!" + "=" + sum1);System.out.println();System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}for (k = 1; k <= 20; k++) {// 用for循环实现m *= (1.0 / k);sum2 += m;}System.out.println("1/20!" + "=" + sum2);}}计算结果:1+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.904551+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.90455习题3_7public class San_7 {// 一个数如果恰好等于它的因子之和,这个数就成为”完数“。

java程序设计使用教程(第2版)参考答案

java程序设计使用教程(第2版)参考答案
第一章习题答案
一、简答题
1.Java语言有哪些特点?主要用于能够哪些方面的软件开发?
特点:(1)面向对象,(2)平台无关性,(3)分布式,(4)可靠性和安全性,(5)多线程,(6)简单性,(7)健壮性,(8)高性能,(9)灵活性。
适用范围:(1)所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等。(2)计算过程的可视化、可操作化的软件的开发。(3)动态画面的设计,包括图形图象的调用。(4)交互操作的设计。(5)Internet 的系统管理功能模块的设计,包括 Web 页面的动态设计、管理和交互操作设计等。(6)Intranet上的软件开发(直接面向企业内部用户的软件)。(7)与各类数据库连接查询的 SQL 语句实现。(8)网络通信与移动通信,网络集成方面。
// 1
// 1 1
// 1 2 1
// 1 3 3 1
// 1 4 6 4 1
// 1 5 10 10 5 1
public class XT00206 {
public static void main(String args[]) {
int i,j,temp;
int a[][]=new int[8][8];
JVM是运行Java程序必不可少的机制,编译后的Java程序指令并不直接在硬件系统上CPU上执行,而是由JVM执行。JVM是编译后的Java程序和硬件系统之间的接口,程序员可以把JVM看成一个虚拟的处理器,它不仅解释执行编译后的Java指令,而且还要进行安全检查,它是Java程序能在多平台间进行无缝移植的可靠保证,同时也是Java程序的安全检验引擎。
}//end speak()
}//end class
第二章习题答案
一、简答题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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”,但允许省略该后缀。

4.public class Xiti4{public static void main (String args[ ]){char ch1='你',ch2='我',ch3='他';System.out.println("\""+ch1+"\"的位置:"+(int)ch1);System.out.println("\""+ch2+"\"的位置:"+(int)ch2);System.out.println("\""+ch3+"\"的位置:"+(int)ch3);}}5.数组名字.length6.数组名字.length7.【代码1】A,65【代码2】-127【代码3】123456.783,123456.783128.【代码1】false【代码2】true【代码3】false【代码4】3【代码5】4.4【代码6】8.8习题3输出110if-else语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。

2.你好好酷!!3.public class Xiti3_3{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='а',cEnd='я';startPosition=(int)cStart; //cStart做int型转换据运算,并将结果赋值给startPosition endPosition=(int)cEnd ; //cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("俄文字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';c=(char)i; //i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}4.public class Xiti4{ 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);}}5.class Xiti5{ public static void main(String args[]){ int i,j;for(j=2;j<=100;j++){ for(i=2;i<=j/2;i++){ if(j%i==0)break;}if(i>j/2){ System.out.print(" "+j);}}}}6.class Xiti6{ public static void main(String args[]){ double sum=0,a=1,i=1;while(i<=20){ sum=sum+a;i++;a=(1.0/i)*a;}System.out.println("使用while循环计算的sum="+sum);for(sum=0,i=1,a=1;i<=20;i++){ a=a*(1.0/i);sum=sum+a;}System.out.println("使用for循环计算的sum="+sum);}}7.public class Xiti7{ 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);}}}8.方法之一import java.util.Scanner;public class Xiti8{ public static void main (String args[ ]){System.out.println("请输入两个非零正整数,每输入一个数回车确认");Scanner reader=new Scanner(System.in);int m=0,n=0,temp=0,gy=0,gb=0,a,b;a=m = reader.nextInt();b=n = reader.nextInt();if(m<n){ temp=m;m=n;n=temp;}int r=m%n;while(r!=0){ n=m;m=r;r=m%n;}gy=n;gb=a*b/gy;System.out.println("最大公约数:"+gy);System.out.println("最小公倍数:"+gb);}}8.方法之二import java.util.Scanner;public class Xiti8 {public static void main (String args[ ]){System.out.println("请输入两个非零正整数,每输入一个数回车确认");Scanner reader=new Scanner(System.in);int m=0,n=0,t=0,gy=0,gb=0;m = reader.nextInt();n = reader.nextInt();if(m>n){t=m;m=n;n=t;}for(int i=1;i<=m;i++){if(m%i==0 && n%i==0){gy=i;}}gb=m*n/gy;System.out.println(m+","+n+"的最大公约数为"+gy);System.out.println(m+","+n+"的最小公倍数为"+gb);}}9.public class Xiti9{ public static void main(String args[]){ int n=1;long sum=0,t=1;t=n*t;while(true){ sum=sum+t;if(sum>9999)break;n++;t=n*t;}System.out.println("满足条件的最大整数:"+(n-1));}}// 1至7的阶乘和是sum=5913.0 // 1至8的阶乘和是sum=46233.01.用该类创建对象时。

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

构造方法可以重载。

3.可以。

不可以。

4.不可以。

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

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

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

6.C,D7.【代码1】,【代码4】8.sum=-1009.2710. **20##1001.如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。

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

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

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

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

相关文档
最新文档