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

上传人:b****6 文档编号:12374180 上传时间:2023-06-05 格式:DOCX 页数:74 大小:83.46KB
下载 相关 举报
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第1页
第1页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第2页
第2页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第3页
第3页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第4页
第4页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第5页
第5页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第6页
第6页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第7页
第7页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第8页
第8页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第9页
第9页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第10页
第10页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第11页
第11页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第12页
第12页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第13页
第13页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第14页
第14页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第15页
第15页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第16页
第16页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第17页
第17页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第18页
第18页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第19页
第19页 / 共74页
java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社.docx_第20页
第20页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

习题解答

习题1

1.James Gosling

2.需3个步骤:

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

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

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

3.由类构成。

不就是必须得。

4.path=D:

\jdk\bin;

setclasspath=D:

\jdk\jre\lib\rt、jar;、;

5、B

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

7。

D。

8.A:

Speak、java.

B:

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

C:

java Xiti8。

D:

执行java Speak得错误提示

Exceptioninthread "main"java、lang、NoSuchMethodError:

main

执行java xiti8得到得错误提示

Exception in thread"main"java、lang、NoClassDefFoundError:

xiti8 (wrongname:

 Xiti8)

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

Exceptionin thread"main"java、lang、NoClassDefFoundError:

Xiti8/class

执行javaXiti8得到得输出结果

I’m gladto meetyou

(4)

9。

属于操作题,解答略。

习题2

1. D

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

3。

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

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

4.public classXiti4{

  publicstaticvoidmain(Stringargs[]){

  charch1='您’,ch2='我’,ch3=’她’;

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

"+(int)ch1);

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

"+(int)ch2);

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

"+(int)ch3); 

}

5.数组名字、length

6.数组名字、length

7.【代码1】A,65

【代码2】-127

【代码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

{  

public staticvoid main(Stringargs[]){

  intstartPosition=0,endPosition=0;

  charcStart='а',cEnd='я';

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

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

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

{ publicstaticvoid main(String args[])

{double sum=0,a=1;

inti=1;

 while(i〈=20)

{ sum=sum+a;

  i++;

 a=a*i;

 }

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

 }

5。

classXiti5

{public staticvoidmain(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.

classXiti6

{public staticvoidmain(Stringargs[])

   {  doublesum=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 classXiti7

{ publicstaticvoidmain(String args[])

 {intsum=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 classXiti8

{ 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<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.方法之二

importjava、util、Scanner;

public class Xiti8{

publicstaticvoidmain(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(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.

publicclassXiti9

{publicstatic voidmain(Stringargs[])

{int n=1;

 longsum=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、0

习题4

1。

用该类创建对象时。

2。

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

构造方法可以重载。

3。

可以。

不可以。

4。

不可以。

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

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

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

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

6.C,D

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

8。

sum=—100

9。

27

10、**20

##100

习题5

1。

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

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

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

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

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

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

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

2。

不可以。

3.abstract类。

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

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

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

6.A,C,D

7。

15、0

8、0

8.98、0

12

9。

classA

{ publicfinal voidf()

 {charcStart='a',cEnd='z';

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

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

  }

}

class BextendsA

{ publicvoidg()

{char cStart=’α',cEnd='ω’;

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

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

 }

}

public classXiti9

{ public static void main (Stringargs[])

 {Bb=newB();

  b、f();

 b、g();

 }

}

10.

classA

{ publicintf(inta,int b){

 if(b

  {inttemp=0;

   temp=a;

     a=b;

  b=temp;

}

 intr=b%a;

 while(r!

=0)

 {b=a;

  a=r;

 r=b%a;

 }

returna;

 }

}

classBextends A

{ publicint f(inta,intb)

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

 return(a*b)/division;

}

public classXiti10

{publicstaticvoid main(Stringargs[ ])

 { Aa=newA();

   B b=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,StrategyB、StrategyC与Strategy就是实现关系。

2.

3.

4。

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

5。

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

习题8

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

增加新得具体策略StrategyFour。

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

import java、util、Arrays;

publicclassStrategyFourimplementsputableStrategy{

publicdoubleputeScore(double [] a) {

    if(a、length〈=2)

 return 0;

     doublescore=0,multi=1;

    Arrays、sort(a);

    intn=a、length-2;

  for(inti=1;i<a、length-1;i++) {

     multi=multi*a[i];

 }

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

  returnscore;

}

}

2。

(1)策略(Strategy)PrintCharacter、java

publicinterface PrintCharacter{

  publicabstractvoid printTable(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〈b、length;i++){

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

   }

 System、out、println(”");

 }

}

PrintStrategyTwo、java

publicclassPrintStrategyTwoimplementsPrintCharacter{

 publicvoid printTable(char[] a,char[] b){

   for(inti=0;i<a、length;i++){

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

  }

 }

(3)上下文PrintGame、java

public classPrintGame{

   PrintCharacterstrategy;

    public voidsetStrategy(PrintCharacter strategy) {

  this、strategy=strategy;

 } 

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

    if(strategy==null)

  System、out、println("sorry!

");

   else

  strategy、printTable(a,b);

}

应用以上策略:

public classApplication{

 public static voidmain(Stringargs[]){

 char[]a=newchar[26];

  char[] b=newchar[26];

  for(int i=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、println("方案2:

");

 game、getPersonScore(a,b);

}

3。

参照本章8。

3。

3自主完成。

习题9

1.A,B,D 

2。

Love:

Game

3。

13

abc夏日

4。

13579

5.9javaHello

6.

publicclassXiti6{

 publicstaticvoidmain (Stringargs[ ]){

 Strings1,s2,s3,t1="ABCDabcd";

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

 "+t1);

   s1=t1、toUpperCase();

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

"+s1);

s2=t1、toLowerCase();

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

”+s2);

 s3=s1、concat(s2);

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

"+s3);

   }

   }

7.

classXiti7 

{publicstaticvoidmain(String args[])

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

chara=s、charAt(0);

 charb=s、charAt(6);

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

 "+a);

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

 ”+b);

}

8.

import java、util、*;

classXiti8

{publicstaticvoidmain(Stringargs[]){

  intyear,month;

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

 Scannerreader=newScanner(System、in);

 year= reader、nextInt();

month= reader、nextInt();

  String[] day=new String[42];

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

  Calendar rili=Calendar、getInstance();

   rili、set(year,month—1,1);//将日历翻到year年month月1日,注意0表示一月、、、11表示十二月

   int 星期几=rili、get(Calendar、DAY_OF_WEEK)-1;

    intdayAmount=0;

   if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)

  dayAmount=31;

   if(month==4||month==6||month==9||month==11)

    dayAmount=30;

  if(month==2)

     if(((year%4==0)&&(year%100!

=0))||(year%400==0))

   dayAmount=29;

   else

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2