java面向对象程序设计课后习题答案耿祥义张跃平主编.doc
习题解答习题11James Gosling2需3个步骤:1) 用文本编辑器编写源文件。 2) 使用javac编译源文件,得到字节码文件。3) 使用解释器运行程序。3由类构成。不是必须的。4 path=D:jdkbin;set classpath=D:jdkjrelibrt.jar;.;5. B6. Java源文件的扩展名是.java,Java字节码的扩展名是.class。7D。 8 A:Speak.java。B:两个字节码文件,Speak.class和Xiti8.class。C:java Xiti8。D:执行java Speak的错误提示Exception in thread "main" java.lang.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" java.lang.NoClassDefFoundError: xiti8 (wrong name: Xiti8)执行java Xiti8.class得到的错误提示Exception in thread "main" java.lang.NoClassDefFoundError: Xiti8/class执行java Xiti8得到的输出结果Im glad to meet you(4)9属于操作题,解答略。习题21 D2【代码1】 【代码2】 错误 /【代码3】更正为 float z=6.89F; 3float型常量后面必须要有后缀“f”或“F”。对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。4public 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习题31 输出110if-else语句书写的不够规范,复合语句缺少大括号“”,代码不够清晰。2你好好酷!3public 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型转换运算,并将结果赋值给endPosition System.out.println("俄文字母表:"); for(int i=startPosition;i<=endPosition;i+) char c=0; c=(char)i; /i做char型转换运算,并将结果赋值给c System.out.print(" "+c); if(i-startPosition+1)%10=0) System.out.println(""); 4public 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); 5class 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); 6class 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); 7public 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); 9public 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.0习题41用该类创建对象时。2所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。构造方法可以重载。3 可以。不可以。4不可以。5成员变量又分为实例变量和类变量,用static修饰的变量是类变量。那么类变量和实例变量有什么区别呢?一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一