java面向对象程序设计课后习题答案 联祥义.docx

上传人:h**** 文档编号:26599172 上传时间:2022-07-18 格式:DOCX 页数:18 大小:16.55KB
返回 下载 相关 举报
java面向对象程序设计课后习题答案 联祥义.docx_第1页
第1页 / 共18页
java面向对象程序设计课后习题答案 联祥义.docx_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《java面向对象程序设计课后习题答案 联祥义.docx》由会员分享,可在线阅读,更多相关《java面向对象程序设计课后习题答案 联祥义.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、java面向对象程序设计课后习题答案 联祥义 习题1 1James Gosling 2 (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用J ava解释器(java.exe)运行Java程序 3Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4系统环境path Djdkbin; 系统环境classpath Djdkjrelibrt.jar;.; 5 B 6Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7

2、D 8(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread main ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread main ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread main n

3、g.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 Im glad to meet you 习题2 1 D 2错误/更正为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

4、.println(+ch2+的位置:+(int)ch2); System.out.println(+ch3+的位置:+(int)ch3); 5数组名字.length 6数组名字.length 7A,65 -127 123456.783,123456.78312 8 false true false 3 4.4 8.8 习题3 1输出110 if-else语句书写的不够规范,复合语句缺少大括号“”,代码不够清晰。2你好好酷! 3 public class Xiti3_3 public static void main (String args ) int startPosition=0,endP

5、osition=0; char cStart=,cEnd=; startPosition=(int)cStart; /cStart做int型转换据运算,并将结果赋值给startPosition endPosition=(int)cEnd ; /cEnd做int型转换运算,并将结果赋值给endPosition System.out.println(俄文字母表:); for(int i=startPosition;ij/2) System.out.print( +j); 6 class Xiti6 public static void main(String args) double sum=0,

6、a=1,i=1; while(in) t=m; m=n; n=t; for(int i=1;i9999) 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修饰的变量是类变量。那么类变量和实例变量有

7、什么区别呢?一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。 6C,D 7, 8sum=-100 927 10. *20 #100 习题5 1如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包中,那么子类继承了父类的p

8、rotected、public成员变量做为子类的成员变量,并且继承了父类的protected、public 方法为子类的方法,继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。 只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。 子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,子类如此定义的方法称作子类重写的方法。子类通过方法的重写可以隐藏继承的方法。 2不可以。 3abstract类。 4假设B类是A类子类或间

9、接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。 5可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。 6A,C,D 715.0 8.0 898.0 12 9 class A public final void f() 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=

10、; 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(); 10 class A public int f(int a,int b) if(b 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

11、,int b) int division=super.f(a,b); return (a*b)/division; public class Xiti10 public static void main (String args ) A a=new A(); B b=new B(); System.out.println(最大公约数:+a.f(36,24); System.out.println(最小公倍数:+b.f(36,24); 习题6 1仍然有效。 2可以。 3不可以。 4大家好,祝工作顺利! 596 乘数超过99 习题7 1 (1)Strategy是接口。 (2)Army不是抽象类。

12、(3)Army和Strategy是关联关系。 (4)StrategyA, StrategyB、StrategyC与Strategy是实现关系。2 3 第5章的例子17的UML类图 4例子13的设计符合开-闭原则。 5例子17的设计符合开-闭原则。 习题8 1采用新增的策略为选手计算得分。 增加新的具体策略StrategyFour。StrategyFour类将double computeScore(double a)方法实现为去掉数组a的元素中的一个最大值和一个最小值,然后计算剩余元素的几何平均值。 import java.util.Arrays; public class StrategyFo

13、ur implements ComputableStrategy public double computeScore(double a) if(a.length=2) return 0; double score=0,multi=1; Arrays.sort(a); int n=a.length-2; for(int i=1;i multi=multi*ai; score=Math.pow(multi,1.0/n); return score; 2 (1)策略(Strategy)PrintCharacter.java public interface PrintCharacter publi

14、c abstract void printTable(char a,char b); (2) 具体策略 PrintStrategyOne.java public class PrintStrategyOne implements PrintCharacter public void printTable(char a,char b) for(int i=0;i System.out.print(ai+,); for(int i=0;ib.length;i+) System.out.print(bi+,); System.out.println(); PrintStrategyTwo.java

15、public class PrintStrategyTwo implements PrintCharacter public void printTable(char a,char b) for(int i=0;i System.out.print(bi+,+ai+,); (3)上下文PrintGame.java public class PrintGame PrintCharacter strategy; public void setStrategy(PrintCharacter strategy) this.strategy=strategy; public void getPerson

16、Score(char a,char b) if(strategy=null) System.out.println(sorry!); else strategy.printTable(a,b); 应用以上策略: public class Application public static void main(String args) char a=new char26; char b=new char26; for(int i=0;i=25;i+) ai=(char)(a+i); for(int i=0;i=25;i+) bi=(char)(A+i); PrintGame game=new P

17、rintGame(); /上下文对象 game.setStrategy(new PrintStrategyOne(); /上下文对象使用策略一 System.out.println(方案1:); game.getPersonScore(a,b); game.setStrategy(new PrintStrategyTwo(); /上下文对象使用策略二 System.out.println(方案2:); game.getPersonScore(a,b); 习题9 1A,B,D 2Love:Game 313 abc夏日 413579 59javaHello 6 public class Xiti6

18、 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.println(字符串中的大写字母变成小写是这个样子: +s2); s3=s1.concat(s2); System.out.println(大写字符串连接小写字符串是这个样子: +s3);

19、7 class 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); 8 import java.util.*; class Xiti8 public static void main(String args) int year,month; System.out.println(请输入年份和月份,每输入一个数回车确认)

20、; 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=

21、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 dayAmount=28; for(int i=0;i星期几;i+) dayi=; for(int i=星期几,n=1;i星期几+dayAmount;i+) if(n=9) dayi=String.valueOf(n)+ ; else dayi=String.valueOf(n); n+; for(int i=星期几+dayAmount;i42;i+) dayi=; for(int i=0;i星期几;i+) dayi=*; for(int i=0;iday.length;i+) if(i%7=0) System.out.println(); System.out.print( +dayi);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁