【Java精品源码栏目提醒】:以下是网学会员为您推荐的Java精品源码-清华大学出版社 耿祥义等人编著 java面向对象程序设计答案 - 大学课件,希望本篇文章对您学习有所帮助。
Java 面向对象程序设计清华大学出版社(编著 耿祥义 张跃平)习题解答建议使用文档结构图(选择 Word 菜单→视图→文档结构图)习题 11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用
Java 编译器(javac.exe)编译
Java 源程序,得到字节码文件。
(3)使用
Java 解释器(
java.exe)运行
Java 程序3.
Java 的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有 public 类,若有的话至多可以有一个 public 类。
4.系统环境 path Djdkbin系统环境 classpath Djdkjrelibrt.jar.5. B6.
Java 源文件的扩展名是.
java。
Java 字节码的扩展名是.class。
7. D8.(1)Speak.
java(2)生成两个字节码文件,这些字节码文件的名字 Speak.class 和 Xiti8.class(3)
java Xiti8(4)执行
java Speak 的错误提示Exception in thread quotmainquot
java.lang.NoSuchMethodError: main执行
java xiti8 得到的错误提示Exception in thread quotmainquot
java.lang.NoClassDefFoundError: xiti8 wrong name: Xiti8执行
java Xiti8.class 得到的错误提示Exception in thread quotmainquot
java.lang.NoClassDefFoundError: Xiti8/class执行
java Xiti8 得到的输出结果Im glad to meet you9.属于操作题,解答略。
习题 21. D2.【代码 1】 【代码 2】 错误 //【代码 3】更正为 float z6.89F3.float 型常量后面必须要有后缀“f”或“F”。
对于 double 常量,后面可以有后缀“d”或“D”,但允许省略该后缀。
4.public class Xiti4 public static void main String args char ch1你ch2我ch3他 System.out.printlnquotquotquotch1quotquot的位置:quotintch1 System.out.printlnquotquotquotch2quotquot的位置:quotintch2 System.out.printlnquotquotquotch3quotquot的位置:quotintch3 5.数组名字.length6.数组名字.length7. 【代码 1】A65【代码 2】-127【代码 3】 123456.783123456.783128.【代码 1】false【代码 2】true【代码 3】false【代码 4】3【代码 5】4.4【代码 6】8.8习题 3输出 110if-else 语句书写的不够规范,复合语句缺少大括号“”,代码不够清晰。
2.你好好酷3.public class Xiti3_3 public static void main String args int startPosition0endPosition0 char cStartаcEndя startPositionintcStart //cStart 做 int 型转换据运算,并将结果赋值给 startPosition endPositionintcEnd //cEnd 做 int 型转换运算,并将结果赋值给 endPosition System.out.printlnquot俄文字母表:quot forint istartPositioniltendPositioni char c0 cchari //i 做 char 型转换运算,并将结果赋值给 c System.out.printquot quotc ifi-startPosition1100 System.out.printlnquotquot 4.public class Xiti4 public static void mainString args double sum0a1int i1 whileilt20 sumsuma i aai System.out.printlnquotsumquotsum 5.class Xiti5 public static void mainString args int ij forj2jlt100j fori2iltj/2i ifji0 break ifigtj/2 System.out.printquot quotj 6.class Xiti6 public static void mainString args double sum0a1i1 whileilt20 sumsuma i a1.0/ia System.out.printlnquot使用 while 循环计算的 sumquotsum forsum0i1a1ilt20i aa1.0/i sumsuma System.out.printlnquot使用 for 循环计算的 sumquotsum 7.public class Xiti7 public static void mainString args int sum0ij fori1ilt1000i forj1sum0jltij ifij0 sumsumj ifsumi System.out.printlnquot完数:quoti 8.方法之一import
java.util.Scannerpublic class Xiti8 public static void main String args System.out.printlnquot请输入两个非零正整数,每输入一个数回车确认quot Scanner readernew ScannerSystem.in int m0n0temp0gy0gb0ab am reader.nextInt bn reader.nextInt ifmltn tempm mn ntemp int rmn whiler0 nm mr rmn gyn gbab/gy System.out.printlnquot最大公约数 :quotgy System.out.printlnquot最小公倍数 :quotgb 8.方法之二import
java.util.Scannerpublic class Xiti8 public static void main String args System.out.printlnquot请输入两个非零正整数,每输入一个数回车确认quot Scanner readernew ScannerSystem.in int m0n0t0gy0gb0 m reader.nextInt n reader.nextInt ifmgtn tm mn nt forint i1iltmi ifmi0 ampamp ni0 gyi gbmn/gy System.out.printlnmquotquotnquot的最大公约数为 quotgy System.out.printlnmquotquotnquot的最小公倍数为 quotgb 9.public class Xiti9 public static void mainString args int n1 long sum0t1 tnt whiletrue sumsumt ifsumgt9999 break n tnt System.out.printlnquot满足条件的最大整数:quotn-1 // 1 至 7 的阶乘和是 sum5913.0 // 1 至 8 的阶乘和是 sum46233.0习题 41.用该类创建对象时。
2.所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
构造方法可以重载。
3. 可以。
不可以。
4.不可以。
5.成员变量又分为实例变量和类变量,用 static 修饰的变量是类变量。
那么类变量和实例变量有什么区别呢?一个类通过使用 new 运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量, 那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。
也就是说对象共享类变量。
6.C,D7.【代码 1】【代码 4】 ,8.sum-1009.2710. 20100习题 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.class A public final void f char cStartacEndz forchar ccStartcltcEndc System.out.printquot quotc class B extends A public void g char cStartαcEndω forchar ccStartcltcEndc System.out.printquot quotc public class Xiti9 public static void main String args B bnew B b.f b.g 10.class A public int fint aint b ifblta int temp0 tempa ab btemp int rba whiler0 ba ar rba return a class B extends A public int fint aint b int divisionsuper.fab return ab/division public class Xiti10 public static void main String args A anew A B bnew B System.out.printlnquot最大公约数 :quota.f3624 System.out.printlnquot最小公倍数 :quotb.f3624 习题 61.仍然有效。
2.可以。
3.不可以。
4.大家好,祝工作顺利!5. 96乘数超过 99习题 71.(1)Strategy 是接口。
(2)Army 不是抽象类。
(3)Army 和 Strategy 是关联关系。
(4)StrategyA StrategyB、StrategyC 与 Strategy 是实现关系。
2.3.4.例子 13 的设计符合开-闭原则。
5.例子 17 的设计符合开-闭原则。
习题 8采用新增的策略为选手计算得分。
增加新的具体策略 StrategyFour。
StrategyFour 类将 double computeScoredouble a方法实现为去掉数组 a 的元素中的一个最大值和一个最小值,然后计算剩余元素的几何平均值。
import
java.util.Arrayspublic class StrategyFour implements ComputableStrategy public double computeScoredouble a ifa.lengthlt2 return 0 double score0multi1 Arrays.sorta int na.length-2 forint i1ilta.length-1i multimultiai scoreMath.powmulti1.0/n return score 2.1策略(Strategy)PrintCharacter.javapublic interface PrintCharacter public abstract void printTablechar achar b2 具体策略PrintStrategyOne.javapublic class PrintStrategyOne implements PrintCharacter public void printTablechar achar b forint i0ilta.lengthi System.out.printaiquotquot forint i0iltb.lengthi System.out.printbiquotquot System.out.printlnquotquot PrintStrategyTwo.javapublic class PrintStrategyTwo implements PrintCharacter public void printTablechar achar b forint i0ilta.lengthi System.out.printbiquotquotaiquotquot (3)上下文 PrintGame.javapublic class PrintGame PrintCharacter strategy public void setStrategyPrintCharacter strategy this.strategystrategy public void getPersonScorechar achar b ifstrategynull System.out.printlnquotsorryquot else strategy.printTableab 应用以上策略:public class Application public static void mainString args char anew char26 char bnew char26 forint i0ilt25i aicharai forint i0ilt25i bicharAi PrintGame gamenew PrintGame //上下文对象 game.setStrategynew PrintStrategyOne //上下文对象使用策略一 System.out.printlnquot方案 1:quot game.getPersonScoreab game.setStrategynew PrintStrategyTwo //上下文对象使用策略二 System.out.printlnquot方案 2:quot game.getPersonScoreab 3.参照本章 8.3.3 自主完成。
习题 91.A,B,D2. Love:Game3.13abc 夏日4.135795.9javaHello6.public class Xiti6 public static void main String args String s1s2s3t1quotABCDabcdquot System.out.printlnquot字符串原来是这个样子: quott1 s1t1.toUpperCase System.out.printlnquot字符串中的小写字母变成大写是这个样子: quots1 s2t1.toLowerCase System.out.printlnquot字符串中的大写字母变成小写是这个样子: quots2 s3s1.concats2 System.out.printlnquot大写字符串连接小写字符串是这个样子: quots3 7.class Xiti7 public static void mainString args String s quot中华人民共和国quot char as.charAt0 char bs.charAt6 System.out.printlnquot第一个字符: quota System.out.printlnquot最后一个字符: quotb 8.import
java.util.class Xiti8 public static void mainString args int yearmonth System.out.printlnquot请输入年份和月份,每输入一个数回车确认quot Scanner readernew ScannerSystem.in year reader.nextInt month reader.nextInt String daynew String42 System.out.printlnquot 日 一 二 三 四 五 六quot Calendar riliCalendar.getInstance rili.setyearmonth-11//将日历翻到 year 年 month 月 1 日注意 0 表示一月...11 表示十二月 int 星期几rili.getCalendar.DAY_OF_WEEK-1 int dayAmount0 ifmonth1month3month5month7month8month10month12 dayAmount31 ifmonth4month6month9month11 dayAmount30 ifmonth2 ifyear40ampampyear1000year4000 dayAmount29 else dayAmount28 forint i0ilt星期几i dayiquotquot forint i星期几n1ilt星期几dayAmounti ifnlt9 dayiString.valueOfnquot quot else dayiString.valueOfn n forint i星期几dayAmountilt42i dayiquotquot forint i0ilt星期几i dayiquotquot forint i0iltday.lengthi ifi70 System.out.printlnquotquot System.out.printquot quotdayi 9.import
java.util.class Xiti9 public static void mainString args int year1month1day1year2month2day2 Scanner readernew ScannerSystem.in System.out.printlnquot请输入第一个日期的年份 月份 日期 ,每输入一个数回车确认quot year1 reader.nextInt month1 reader.nextInt day1 reader.nextInt System.out.printlnquot请输入第二个日期的年份 月份 日期 ,每输入一个数回车确认quot year2 reader.nextInt month2 reader.nextInt day2 reader.nextInt Calendar calendarCalendar.getInstance calendar.setyear1month1day1 long timeYear1calendar.getTimeInMillis calendar.setyear2month2day2 long timeYear2calendar.getTimeInMillis long 相隔天数Math.abstimeYear1-timeYear2/1000606024 System.out.printlnquotquotyear1quot年quotmonth1quot月quotday1quot日和quot year2quot年quotmonth2quot月quotday2quot日相隔quot相隔天数quot天quot 10.public class Xiti10 public static void mainString args double a0b0c0 a12 b24 cMath.maxab System.out.printlnc cMath.minab System.out.printlnc cMath.pow23 System.out.printlnc cMath.abs-0.123 System.out.printlnc cMath.asin0.56 System.out.printlnc cMath.cos3.14 System.out.printlnc cMath.exp1 System.out.printlnc cMath.log8 System.out.printlnc 习题 101.BorderLayout 布局。
2.不可以。
3.AC。
4.import
java.util.StringTokenizerimport
java.awt.import
java.awt.event.import javax.swing.public class Xiti4 public static void mainString args ComputerFrame frnew ComputerFrame fr.setTitlequot计算的窗口quot class ComputerFrame extends JFrame implements TextListener TextArea text1text2 int count1 double sum0aver0 public ComputerFrame setLayoutnew FlowLayout text1new TextArea620 text2new TextArea620 addtext1 addtext2 text2.setEditablefalse text1.addTextListenerthis setSize300320 setVisibletrue addWindowListenernew WindowAdapter public void windowClosingWindowEvent e System.exit0 validate public void textValueChangedTextEvent e String stext1.getText sum0 aver0 StringTokenizer fenxinew StringTokenizersquot nquot int nfenxi.countTokens countn double anew doublen forint i0iltn-1i.