ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:65.41KB ,
资源ID:4420648      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4420648.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java面向对象程序设计习题解答耿祥义.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java面向对象程序设计习题解答耿祥义.docx

1、Java面向对象程序设计习题解答耿祥义书后习题 参考答案习题11James Gosling2(1)使用一个文本编辑器编写源文件。(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。命令: javac d . 文件名称.java(3)使用Java解释器(java.exe)运行Java程序。命令: java 包名.类名3Java的源文件是由若干个书写形式互相独立的类、接口、枚举等组成。应用程序中可以没有public类,若有的话至多可以有一个public类。4新建JAVA_HOME系统环境变量,指向安装目录 在系统环境变量path中增加内容:%JAVA_HOME%bin

2、;新建系统环境变量classpath并填入三项: .; %JAVA_HOME%libdt.jar; %JAVA_HOME%libtools.jar5 B 6 Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7 D8(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class和Xiti8.class(3)java Xiti8(4)执行java Speak的错误提示Exception in thread main java.lang.NoSuchMethodError: main执行java xiti8得到的错误提示Exception

3、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 you9属于操作题,解答略。习题21 BD 2【代码1】 【代码2】 错误 /【代码3】更正为 float z=6.89F; 3float型常量后面必须要有后缀“f”或“F”。对于double常量,后

4、面可以有后缀“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数组名字.length 6数组名字.length7 【代码1】A,65 【代码2】-127 【代码3】 1

5、23456.783,123456.783128【代码1】false 【代码2】true 【代码3】false 【代码4】3 【代码5】4.4 【代码6】8.8习题31 输出110 if-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型转

6、换,结果赋给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);/ System.out.print( + c + + Integer.toHexString(c); if (i startPosition + 1

7、) % 10 = 0) System.out.println(); 2624120720504040320362880362880039916800479001600622702080087178291200130*00209227898880003556874280960006402373705728000121645*0002432902008176640000-4249290049419214848sum=25613274941118203131!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=362880011!=39916

8、80012!=47900160013!=622702080014!=8717829120015!=130*0016!=2092278988800017!=35568742809600018!=640237370572800019!=121645*00020!=2432902008176640000sum=2561327494111820313 4随书给出的解答:public class Xiti4 public static void main(String args) double sum = 0, a = 1; int i = 1; while (i = 20) sum = sum + a

9、; i+; a = a * i; System.out.println(sum= + sum); 结果: sum=2.5613274941118203E18 如果sum改成 long的情况?精确计算的方法:书P201有类似操作BigInteger sum = new BigInteger(0);BigInteger factorial = new BigInteger(1);for (int i = 0; i 20; ) i+; factorial = factorial.multiply(new BigInteger(String.valueOf(i); System.out.println

10、(i + != + factorial); sum = sum.add(factorial);System.out.println(sum= + sum); / 256-1327-4941-1182-0313/ System.out.println(Long.MAX_VALUE); 922-3372-0368-5477-58075class Xiti5 public static void main(String args) for (int j = 2; j = 100; j+) int i = 0; for (i = 2; i j / 2) System.out.print( + j);

11、6class Xiti6 public static void main(String args) double sum = 0; double reciprocalFactorial = 1; for (int i = 1; i = 20; i+) reciprocalFactorial = reciprocalFactorial * (1.0 / i); sum = sum + reciprocalFactorial; System.out.println(使用for循环计算的sum= + sum); int i = 1; sum = 0; reciprocalFactorial = 1;

12、 while (i = 20) sum = sum + reciprocalFactorial; i+; reciprocalFactorial = (1.0 / i) * reciprocalFactorial; System.out.println(使用while循环计算的sum= + sum); 7class Xiti7 public static void main(String args) for (int i = 1; i = 1000; i+) int sum = 0; / System.out.print(i + 因子); for (int j = 1; j i; j+) if

13、 (i % j = 0) / System.out.print( + j); sum = sum + j; / System.out.println( 因子的和 + sum); if (sum = i) System.out.println(完数: + i); 8import java.util.Scanner;public class Xiti8 public static void main(String args) method1(); method2(); private static void method1() System.out.println(请输入两个非零正整数,每输入一个

14、数回车确认); 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) t = m; m = n; n = t; for (int i = 1; i endNumber) System.out.println(满足条件的最大整数: + (i - 1); break; private static void method2() / 书中提供的方法实现

15、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 / 1至8的阶乘和是sum=46233习题41用该类创建对象时。2所谓方法重载是在一个类中或父子类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。构造方法可以重载。3 可以。不可以。4不可以。5成员变量又分为实

16、例变量和类变量,用static修饰的变量是类变量。那么类变量和实例变量有什么区别呢?一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。6C,D 看类声明在什么地方,顶级类只有public或不加两个修饰,而内部类可以有四个修饰。7【代码1】,【代码4】 8sum=-100 927 10. *20#100习题51 如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为

17、自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类

18、型和父类的方法完全相同,子类如此定义的方法称作子类重写的方法。子类通过方法的重写可以隐藏继承的方法。重写的规定不仅仅如此,访问权限、抛出异常、方法类型都有规定。2不可以。 3abstract类。 4假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。父引用指向字对象。5可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。6A,C,D 正确答案 AD C不正确715.0 8.0 898.0 12 9class A public final void f(

19、) char cStart = a, cEnd = z; for (char c = cStart; c = cEnd; c+) System.out.print( + c); class B extends A public void g() char cStart = , cEnd = ; for (char c = cStart; c = cEnd; c+) System.out.print( + c); public class Xiti9 public static void main(String args) B b = new B(); b.f(); b.g(); 10class

20、 A public int f(int a, int b) if (b a) int temp = 0; temp = a; a = b; b = temp; int r = b % a; while (r != 0) b = a; a = r; r = b % a; return a; class B extends A public int f(int a, int b) int division = super.f(a, b); return (a * b) / division; public class Xiti10 public static void main(String ar

21、gs) A a = new A(); B b = new B(); 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是实现关系。234例子13的设计符合开-闭原则。5例子1

22、7的设计符合开-闭原则。习题91A,B,D 2 Love:Game 313 abc夏日 413579 59javaHello6public class Xiti6 public static void main(String args) String s1, s2, s3, t1 = ABCDabcd; System.out.println(字符串原来是这个样子: + t1); s1 = t1.toUpperCase(); System.out.println(字符串中的小写字母变成大写是这个样子: + s1); s2 = t1.toLowerCase(); System.out.printl

23、n(字符串中的大写字母变成小写是这个样子: + s2); s3 = s1.concat(s2); System.out.println(大写字符串连接小写字符串是这个样子: + s3); 7class Xiti7 public static void main(String args) String s = 中华人民共和国; char a = s.charAt(0); char b = s.charAt(6); System.out.println(第一个字符: + a); System.out.println(最后一个字符: + b); 8import java.util.*;class X

24、iti8 public static void main(String args) int year, month; System.out.println(请输入年份和月份,每输入一个数回车确认); Scanner reader = new Scanner(System.in); year = reader.nextInt(); month = reader.nextInt(); String day = new String42; 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; int dayAmount = 0;

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

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