java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx

上传人:b****5 文档编号:8020069 上传时间:2023-01-28 格式:DOCX 页数:56 大小:136.13KB
下载 相关 举报
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第1页
第1页 / 共56页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第2页
第2页 / 共56页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第3页
第3页 / 共56页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第4页
第4页 / 共56页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx

《java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx》由会员分享,可在线阅读,更多相关《java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx(56页珍藏版)》请在冰豆网上搜索。

java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx

java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社

习题解答

习题1

1.JamesGosling

2.需3个步骤:

1)用文本编辑器编写源文件.

2)使用javac编译源文件,得到字节码文件•

3)使用解释器运行程序。

3•由类构成。

不就是必须得。

4.path=D:

\jdkbin;

setclasspathjdk\jrlib\rt、jar;、;

5、B

6、Java源文件得扩展名就是、java,Java字节码得扩展名就是、class.

7°D。

8.A:

Speak、java.

B:

两个字节码文件,Speak、class与Xiti8、class。

C:

javaXiti8。

D:

执行javaSpeak得错误提示

Exceptioninthread"mainHjava、lang、NoSuchMethodError:

main

执行javaxiti8得到得错误提示

ExceptioninthreadHmain11java、lang、NoClassDefFoundError:

xiti8(wrongname:

Xiti8)

执行javaXiti8、class得到得错误提示

Exceptioninthread"main"java、lang、NoClassDefFoundError:

Xiti8/class

执行javaXiti8得到得输出结果

I'mgladtomeetyou

(4)

9。

属于操作题,解答略。

习题2

1.D2.【代码1】【代码2】错误//【代码3】更正为floatz=6.89F;

3ofloat型常量后面必须要有后缀“f”或“F”。

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

4.publicclassXiti4{

publicstaticvoidmain(Stringargs[]){

charchi=/您',ch2='我',ch3='她';

System、out、println(”\”"+ch1+H\H得位置:

"+(int)chi);

Systemout、println(””"”得位置:

"+(int)ch2);

System、out、println(”\"”+ch3+”\"得位置:

"+(int)ch3)}

}

5.数组名字、Iength

6.数组名字、length

7.【代码1】A,65【代码2】-i27

【代码3】123456、783,123456、78312

8.

【代码1】false

【代码2】true

【代码3】false

【代码4】3

【代码5】4、4

【代码6】8、8

习题3

1.输出110

if—else语句书写得不够规范,复合语句缺少大括号"{}”,代码不够清晰

2。

您好好酷!

!

3.

publicclassXiti3—3

{

publicstaticvoidmain(Stringargs[]){

intstartPosition=0,endPosition=0;

charcStart=/a,cEnd=z水;

startPositiendPosition

startPosition=(int)cStart;//cStart做int型转换据运算,并将结果赋值给

on

endPosition=(int)cEnd;//cEnd做int型转换运算,并将结果赋值给

System、out、println(”俄文字母表:

");

for(inti=startPosition;i<=endPosition;i++){

charc=\0'';

c=(char)i;//i做char型转换运算,并将结果赋值给c

System、out、print(”"+c);

if((i—startPosition+1)%10==0)

System>out、println(”);

}

}

}

4。

publicclassXiti4

{publicstaticvoidmain(Stringargs[])

{doublesum=0,a=1;

inti=1;

while(i〈=20)

{sum=sum+a;

1++;a=a*i;

}

System、out、println(”sum="+sum);

}

}

5。

classXit15

{pub1icstaticvoidmain(Stringargs[])

{inti,j;

for(j=2;j〈=100;j++)

{for(i=2;i<=j/2;1++)

{if(j%i==0)break;

}

if(1>j/2)

{System、out、print(”"+j);

}

}

}

}

6.

c1assXiti6

{publicstaticvoidmain(Stringargs[])

{doublesum=0,a=1,i=1;wh1le(i〈=20)

{sum=sum+a;

1++;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/1);

sum=sum+a;

System、

}

out、

print1n(

”使用

for循环计算得sum=H+sum

7.

}

pu

bl1cclass

Xiti7

{

pub1icstati

cv

oidmain

(String

args[])

{intsum=

0,i,j

for(i=1;i〈=1000;1++)

{for(j=1,sum=0;j〈i;j++)

{if(i%j==0)sum=sum+j;

}

if(sum==i)

System、out、println("完数:

"+i)}

}

}

8。

方法之一

importjava、util、Scanner;

publicclassXiti8

{publicstaticvoidmain(Stringargs[]){

System、out、println("请输入两个非零正整数,每输入一个数回车确认");

Scannerreader=newScanner(System、in);

intm=0,n=0,temp=0,gy=0,gb=0,a,b;

a=m=reader、nextInt();

b=n=reader、nextInt();

if(m

{temp=m;

m=n;

n=temp;

}

intr=m%n;

while(r!

=0)

{n=m;

m=r;

r=m%n;

}

gy=n;

gb=a*b/gy;

System、out、print1n("最大公约数:

"+gy);

System、out、println(”最小公倍数:

"+gb);

}

}

8.方法之二

importjavautil、Scanner;

publicc1assXiti8{

pub1icstaticvoidmain(Stringargs[]){

System、out、println(”请输入两个非零正整数,每输入一个数回车确认");

Scannerreader=newScanner(System、in);

intm=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(inti=1;i<=m;i++){

if(m%i==0&&n%i==0){

gy=i;

}

}

gb=m*n/gy;

System、out、print1n(m+","+n+"得最大公约数为”+gy);System、out、println(m+","+n+"得最小公倍数为"+gb);

}

}

9.

publicclassXiti9

{publicstaticvoidmain(Stringargs[])

{intn=1;

longsum=0,t=1;

t=n*t;

while(true)

{sum=sum+t;

if(sum>9999)

break;

n++;

t=n*t;

}

System、out、printin(”满足条件得最大整数:

”+(n—1));

}

}//1至7得阶乘与就是sum=5913、0//1至8得阶乘与就是sum=46233、0

习题4

1。

用该类创建对象时。

2。

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

构造方法可以重载。

3。

可以。

不可以。

4。

不可以。

5.成员变量又分为实例变量与类变量,用static修饰得变量就是类变量。

那么类变量与实例变量有什么区别呢?

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

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

6.C,D

7.【代码1】,【代码4】

8.sum=T00

9.27

10、**20

##100

习题5

1。

如果子类与父类在同一个包中,那么子类自然地继承了其父类中不就是private得成员变量作为自己得成员变量,并且也自然地继承了父类中不就是private得方法作为自己得方法。

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

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

如果子类与父类不在同一个包里,子类不能继承父类得友好变量与友好方法.

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

量。

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

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

2。

不可以。

3.abstract类。

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

5.可以把实现某一接口得类创建得对象得引用赋给该接口声明得接口变量中。

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

6.A,C,D

7。

15、0

8、0

&98、0

12

9。

classA

{publicfina1voidf()

{charcStart=/az,cEnd='z';

for(charc=cStart;c<=cEnd;C++)

{System、out、print(""+c);

}

}

}

classBextendsA

{publicvoidg()

{charcStart='a,cEnd=/3';

for(charc=cStart;c〈=cEnd;c++)

{System、out、print(""+c);

}

}

}

publicclassXiti9

{publicstaticvoidmain(Stringargs[])

{Bb=newB();

b、f();

b、g();

}

}

10.

classA

{publicintf(inta,intb){

if(b

{inttemp=0;

temp=a;

a=b;

b=temp;

}

intr=b%a;

while(r!

=0)

{b=a;

a=r;

r=b%a;

}

returna;

}

}

classBextendsA

{publicintf(inta,intb)

{intdivision=super、f(a,b);

return(a*b)/division;

publicclassXitilO

{publicstaticvoidmain(Stringargs

[])

{Aa=newA();

Bb=newB();

System、out、println("最大公约数:

"+a、f(36

24))

System、out、println("最小公倍数:

}

}

”+b、f(36,

24));

习题6

1。

仍然有效。

2。

可以。

3。

不可以。

4。

大家好,祝工作顺利!

5。

96

乘数超过99

习题7

1.

(1)Strategy就是接口。

(2)Army不就是抽象类。

(3)Army与Strategy就是关联关系。

(4)StrategyA,

2.

3.

第5章得例子17得UML类图

4。

例子13得设计符合开一闭原则。

5。

例子17得设计符合开-闭原则.

习题8

1.采用新增得策略为选手计算得分。

增加新得具体策略StrategyFour°StrategyFour类将doubleputeScore(double[]a)方法实现为去掉数组a得元素中得一个最大值与一个最小值,然后计算剩余元素得几何平均值。

importjava、util、Arrays;

publicclassStrategyFourimplementsputableStrategy{

publicdoubleputeScore(double[]a){

if(a、length<=2)

return0;

doublescore=0,multi=1;

Arrays、sort(a);

intn=a、length-2;

for(inti=1;i

multi=multi*a[i];

}

score=Math、pow(multi,1、0/n);returnscore;

}

}

2。

(1)策略(Strategy)PrintCharacter、java

publicinterfacePrintCharacter{

publicabstractvoidprintTable(char[]a,char[]b);

}

(2)具体策略

PrintStrategyOne、java

publicclassPrintStrategyOneimplementsPrintCharacter{

publicvoidprintTable(char[]a,char[]b){

for(inti=0;i

System、out、print(a[i]+",);”

}

for(inti=0;i

System、out、print(b[i]+",");

}

System、out、println(”");

}

}

PrintStrategyTwo、java

publicclassPrintStrategyTwoimplementsPrintCharacter{publicvoidprintTable(char[]a,char[]b){

for(inti=0;i

System、out、print(b[i]+”,”+[ai]+",");

}

}

}

(3)上下文PrintGame、java

publicclassPrintGame{

PrintCharacterstrategy;

publicvoidsetStrategy(PrintCharacterstrategy){

this、strategy=strategy;

publicvoidgetPersonScore(char[]a,char[]b){

if(strategy==nu1l)

System>out、println("sorry!

");

e1sestrategy、printTable(a,b);

}

}

应用以上策略:

publicclassApplication{

publicstaticvoidmain(Stringargs口){

char[]a=newchar[26];

char[]b=newchar[26];

for(inti=0;i〈=25;i++){

a[i]=(char)('a'+i);

}

for(inti=0;i<=25;i++){

b:

i]=(char)('A'+i);

}

PrintGamegame=newPrintGame();//上下文对象

game、setStrategy(newPrintStrategyOne());//上下文对象使用策略一

System、out、println(”方案1:

");

game、getPersonScore(a,b);

game、setStrategy(newPrintStrategyTwo());//上下文对象使用策略二

System、out、printin(”方案2:

");game、getPersonScore(a,b);

}

}

3。

参照本章8。

3。

3自主完成。

习题9

1。

A,B,D

2。

Love:

Game

3。

13

abc夏日

4。

13579

5.9javaHel1o

6.

publicclassXiti6{

pub1icstaticvoidmain(Stringargs[]){

Strings1,s2,s3,t1=HABCDabcd";

System、out、println("字符串原来就是这个样子:

"+t1);

s1=t1、toUpperCase();

System、out、print1n("字符串中得小写字母变成大写就是这个样子:

"+s1);

s2=t1、toLowerCase();

System、。

ut、println("字符串中得大写字母变成小写就是这个样子:

”+s2);

s3=s1、concat(s2);

System、out、println("大写字符串连接小写字符串就是这个样子:

11+s3);

}

}

7.

classXiti7

{publicstaticvoidmain(Stringargs[])

{Strings="中华人民共与国";

chara=s、charAt(0);

charb=s、charAt(6);

System、out、printIn("第一个字符:

11+a);

System、out、println("最后一个字符:

”+b);

}

}

8.

importjava、util、*;

classXiti8

{pub1icstaticvoidmain(Stringargs[]){

intyear,month;

System。

ut、println(”请输入年份与月份,每输入一个数回车确认");

Scannerreader=newScanner(System、in);

year=reader、nextInt();

month=reader、nextInt();

String[]day=newString[42];

System、out、println("日一二三四五六");

Ca1endarri1i=Ca

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1