您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > linux/Unix相关 > java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社
习题解答习题11.JamesGosling2.需3个步骤:1)用文本编辑器编写源文件。2)使用javac编译源文件,得到字节码文件。3)使用解释器运行程序。3.由类构成。不是必须的。4.path=D:\jdk\bin;setclasspath=D:\jdk\jre\lib\rt.jar;.;5.B6.Java源文件的扩展名是.java,Java字节码的扩展名是.class。7.D。8.A:Speak.java。B:两个字节码文件,Speak.class和Xiti8.class。C:javaXiti8。D:执行javaSpeak的错误提示Exceptioninthreadmainjava.lang.NoSuchMethodError:main执行javaxiti8得到的错误提示Exceptioninthreadmainjava.lang.NoClassDefFoundError:xiti8(wrongname:Xiti8)执行javaXiti8.class得到的错误提示Exceptioninthreadmainjava.lang.NoClassDefFoundError:Xiti8/class执行javaXiti8得到的输出结果I'mgladtomeetyou(4)9.属于操作题,解答略。习题21.D2.【代码1】【代码2】错误//【代码3】更正为floatz=6.89F;3.float型常量后面必须要有后缀“f”或“F”。对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。4.publicclassXiti4{publicstaticvoidmain(Stringargs[]){charch1='你',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习题31.输出110if-else语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。2.你好好酷!!3.publicclassXiti3_3{publicstaticvoidmain(Stringargs[]){intstartPosition=0,endPosition=0;charcStart='а',cEnd='я';startPosition=(int)cStart;//cStart做int型转换据运算,并将结果赋值给startPositionendPosition=(int)cEnd;//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println(俄文字母表:);for(inti=startPosition;i=endPosition;i++){charc='\0';c=(char)i;//i做char型转换运算,并将结果赋值给cSystem.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;i++;a=a*i;}System.out.println(sum=+sum);}}5.classXiti5{publicstaticvoidmain(Stringargs[]){inti,j;for(j=2;j=100;j++){for(i=2;i=j/2;i++){if(j%i==0)break;}if(ij/2){System.out.print(+j);}}}}6.classXiti6{publicstaticvoidmain(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.publicclassXiti7{publicstaticvoidmain(Stringargs[]){intsum=0,i,j;for(i=1;i=1000;i++){for(j=1,sum=0;ji;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(mn){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.println(最大公约数:+gy);System.out.println(最小公倍数:+gb);}}8.方法之二importjava.util.Scanner;publicclassXiti8{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(mn){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.println(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(sum9999)break;n++;t=n*t;}System.out.println(满足条件的最大整数:+(n-1));}}//1至7的阶乘和是sum=5913.0//1至8的阶乘和是sum=46233.0习题41.用该类创建对象时。2.所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。构造方法可以重载。3.可以。不可以。4.不可以。5.成员变量又分为实例变量和类变量,用static修饰的变量是类变量。那么类变量和实例变量有什么区别呢?一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。6.C,D7.【代码1】,【代码4】8.sum=-1009.2710.**20##100习题51.如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,子类如此定义的方法称作子类重写的方法。子类通过方法的重写可以隐藏继承的方法。2.不可以。3.abstract类。4.假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。5.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。6.A,C,D7.15.08.08.98.0129.classA{publicfinalvoidf(){charcStart='a',cEnd='z';for(charc=cStart;c=cEnd;c++){System.out.print(+c);}}}classBextendsA{publicvoidg(){charcStart='α',cEnd='ω';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(ba){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;}}publicclassXiti10{publicstaticvoidmain(Stringargs[]){Aa=newA();Bb=newB();System.out.println(最大公约数:+a.f(36,24));System.out.println(最小公倍数:+b.f(36,24));}}习题61.仍然有效。2.可以。3.不可以。4.大家好,祝工作顺利!5.96乘数超过99习题71.(1)Strategy是接口。(2)Army不是抽象类。(3)Army和Strategy是关联关系。(4)StrategyA,StrategyB、StrategyC与Strategy是实现关系。2.3.Animal+cry():void+getAnimalName():StringDog+cry():void+getAnimalName():StringSimulator+playSound(Animal):voidCat+cry():void+getAnimalName():String第5章的例子13的UML类图4.例子13的设计符合开-闭原则。5.例子17的设计
本文标题:java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社
链接地址:https://www.777doc.com/doc-7028345 .html