欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java2实用教程课后答案-第三版-耿祥义-张跃平版精品资料.doc

    • 资源ID:96699043       资源大小:392.50KB        全文页数:111页
    • 资源格式: DOC        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java2实用教程课后答案-第三版-耿祥义-张跃平版精品资料.doc

    Java2实用教程(第三版) 课后习题参考答案第1章 Java入门1. 开发与运行Java程序需要经过哪些主要步骤和过程?答:(1)编写Java源文件:使用文本编辑器(Edit或记事本),拓展名为.java(2)编译Java源文件:使用Java编译器(javac.exe)。得到字节码文件*.class(3)运行Java程序:Java应用程序使用Java解释器(java.exe)执行字节码文件;Java小应用程序使用支持Java标准的浏览器来执行。2. 怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗?答: 应用程序必须有main方法,这个方法是程序执行的入口。小应用程序没有main方法。应用程序的主类不一定用public修饰;小应用程序的主类必须用public修饰。3. Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的?答: Java程序由类组成。应用程序可以没有public类;小应用程序一定有一个类是public类(主类)。应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java;有多个类时,如果有public类(最多一个),源文件名与public类的类名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名相同即可,拓展名为.java。小应用程序:源文件名与主类的类名相同,拓展名是.java。4. 在运行小程序的HTML文件中可以使用codebase属性指定小程序的字节码所驻留的目录。如果不使用codebase属性,小程序的字节码文件必须和运行它的HTML文件在同一目录中。编写一个小程序并将小程序的字节码存放在某个目录中,比如C:5000;把运行该小程序的HTML文件(注意其中的codebase属性):<applet code=你的小程序的字节码 width=200 height=300 codebase=C:5000></applet>存放在另一个目录中。答: 以书中小应用程序为例进行说明:编写Java小应用程序源代码import java.applet.*;import java.awt.*;public class Boy extends Appletpublic void paint(Graphics g)g.setColor(Color.red);g.drawString("我一边喝着咖啡,一边学Java呢",5,30);g.setColor(Color.blue);g.drawString("我学得很认真",10,50);将上述代码命名为Boy.java并进行编译得到Boy.class字节码文件;将得到的字节码文件存放在C:5000文件夹下;编写小应用程序的HTML源文件:<applet code=Boy.class wdith=200 height=300 codebase=C:5000> </applet>将上述编写好的代码命名为Boy.html;并将此文件存放在C:5000文件夹以外的任意一个文件夹中(如C:1000);运行Boy.html。第2章 标识符、关键字和数据类型1. 什么叫标识符?标识符的规则是什么?答:用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符,而且关键字不能作为标识符。2. 什么叫关键字?请说出5个关键字。答:Java语言中已经被赋予特定意义的一些单词。class break public return static extends等。3. Java的基本数据类型都是什么?答:boolean(逻辑型) char(字符型) float、double(浮点型) byte、short、int、long(整型)。4. 下列哪些语句是错误的:int x = 8;byte b = 127;b = x;答:b=x语句错误;原因是高级别的变量赋值给低级别的变量时,一定要用显式转换即b=(byte)x; 。5. 下列程序的输出结果是什么?public class Epublic static void main(String args)long a=1,2,3,4;long b=100,200,300,400,500;b=a;System.out.println("数组b的长度:"+b.length);System.out.println("b0="+b0);答: 数组b的长度:4b0=16. 上机运行下列程序,注意观察输出结果。public class Epublic static void main(String args)for(int i=20302;i<20322;i+)System.out.println(char)i); 答: 低住佐佑佒体佔何佖佗佘余佚佛作佝佞佟你佡7. System.out.println(“你好”);可输出字符串,也可以使用System.out.println( )输出变量或表达式的值,只需使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置即可,如: System.out.println(“ ”+x);System.out.println(“:”+123+“大于”+122);等。上机调试下列程序,注意观察结果,特别注意System.out.print( )和System.out.println( )的区别。public class OutputDatapublic static void main(String args)int x=234,y=432;System.out.println(x+"<"+(2*x);System.out.print("我输出结果后不回车");System.out.println("我输出结果后自动回车到下一行");System.out.println("x+y= "+(x+y);System.out.println(" "+x+y+"=234432");答: 234<468我输出结果后不回车我输出结果后自动回车到下一行x+y= 666234432=2344328. 编写一个Java应用程序,输出全部的希腊字母。答:public class XLWordspublic static void main(String args)for(int i=913;i<930;i+)System.out.print(char)i+" ");for(int j=931;j<938;j+)System.out.print(char)j+" ");for(int k=945;k<962;k+)System.out.print(char)k+" ");for(int t=963;t<=969;t+) System.out.print(char)t+" ");第3章 运算符、表达式和语句1. 下列程序的输出结果是什么?public class Epublic static void main(String args)char x='你',y='e',z='吃'if(x>'A')y='爱'z='情'elsey='我'z='她'System.out.println(" "+x+y+z);答: 你爱她2. 下列程序的输出结果是什么?public class E3public static void main(String args)char c='0'for(int i=1;i<=4;i+)switch(i)case 1:c='b'System.out.print(c);case 2:c='e'System.out.print(c);break;case 3:c='p'System.out.print(c);default:System.out.print("!"); 答:beep!3. 编写应用程序,求1!+2!+10!。答:class Factpublic static void main(String args)int fact,sum=0;for(int i=1;i<=10;i+)fact=1;for(int j=1;j<=i;j+)fact*=j;sum+=fact;System.out.println("1到10的阶乘之和是:"+sum);4. 编写一个应用程序,求100以内的全部素数。答:class Primespublic static void main(String args)int w=1;for(int i=2;i<=100;i+)for(int j=2;j<i;j+)w=i%j;if(w=0)break;if(w!=0)System.out.println(i+"是素数");5. 分别用dowhile和for循环计算1+1/2!+1/3!+1/4!+的前20项和。答: for循环class Sumpublic static void main(String args)int fact;double sum=0;for(int i=1;i<=20;i+)fact=1;for(int j=1;j<=i;j+)fact*=j;sum+=1.0/fact;System.out.println(sum);dowhile循环class Sumpublic static void main(String args)int i=1;int fact;double sum=0;dofact=1;int j=0;while(+j<=i)fact*=j;sum+=1.0/fact;while(+i<=20);System.out.println(sum);6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求1000之内的所有完数。答:class Wanshupublic static void main(String args)int x,i,sum;for(x=1;x<=1000;x+) sum=0;for(i=1;i<x;i+)if(x%i=0)sum+=i;if(x=sum)System.out.println(x+"是完数");7. 编写应用程序,分别使用while和for循环计算8+88+888+前10项之和。答: for循环class TheSumpublic static void main(String args)long sum=0,data=8;for(int i=1;i<=10;i+)sum=sum+data;data=data*10+8;System.out.println(sum);while循环class TheSumpublic static void main(String args)long sum=0,data=8,i=0;while(+i<=10)sum=sum+data;data=data*10+8;System.out.println(sum);8. 编写应用程序,输出满足1+2+3+n<8888的最大正整数n。答:class Maxn public static void main(String args)int k=1,sum=0;while(sum+=k)<8888)k+;k-;System.out.println("最大能取到:"+k);第4章 类、对象和接口1. 类中的实例变量在什么时候会被分配内存空间?答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。2. 什么叫方法的重载?构造方法可以重载吗?答:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。构造方法可以重载。3. 类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?答:类中的实例方法可以操作类变量。类方法不可以操作实例变量4. 类中的实例方法可以用类名直接调用吗?答: 类中的实例方法不可以用类名直接调用。5. 举例说明protected方法和友好方法的区别。答: 当子类与父类不在同一个包中时,子类可以继承父类的protected方法;而友好方法此时则不能被子类继承。6. 举例说明类变量和实例变量的区别。答:书写: 定义成员变量时,类变量有static修饰;实例变量没有static修饰。例: class Aint x; /实例变量static int y; /类变量内存: 不创建对象,类的实例变量不会被分配内存空间;类变量被分配相应的内存空间。不同对象的实例变量被分配不同的内存空间;不同对象的类变量被分配相同的内存空间。任何一个对象改变类变量,其他对象的相应类变量也发生相应变化。一个对象的实例变量发生改变,不影响其他对象的相应实例变量。例: 执行语句: A1.x=10; A1.y=20;这时A2.x的值也是10;而A2.y的值保持原来的初值。使用: 类变量可以被类方法操作;而实例变量不能被类方法操作。例: class Aint x;static int y;static void func()b=10; /合法a=20; /非法类变量可以通过类名访问;实例变量不能通过类名访问。例: class Aint x;static int y;class Bpublic void func();A.x=10; /非法A.y=20; /合法7. 子类将继承父类的哪些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?在子类中是否允许有一个方法和父类的方法名字相同,而类型不同?答:子类和父类在同一个包中时,子类可以继承父类的除private属性的所有方法和成员变量,当子类与父类不在同一个包中时,子类只能继承父类的protected和public属性的成员变量和方法。子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量;子类中定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同,子类就隐藏从父类继承来的方法(方法的重写)。在子类中允许有一个方法和父类的方法名字相同而类型不同。8. 父类的final方法可以被子类重写吗?答: 父类的final方法不能被子类重写。9. 什么类中可以有abstract方法?答: abstract类中可以有abstract方法。10.什么叫对象的上转型对象?答: B类是A类的子类或间接子类,当用子类B创建一个对象b并把这个对象的引用放到A类的对象a中时,称A类对象a是子类对象b的上转型对象。11.什么叫接口的回调?答: 可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。12.下列程序有什么错误?public class Takecareint a=90;static float b=10.98f;public static void main(String args)float c=a+b;System.out.println("c="+c);答: 语句float c=a+b;错误。原因是类方法main操作了实例变量a。13. 请写出下列程序的输出结果。class Apublic int f(int x)return x+1;class B extends Apublic int f(int x)return x*x;public class Epublic static void main(String args)A a=new B();int m=a.f(10);System.out.println(m);答: 10014. 请写出下列程序的输出结果。class Aint x;public void setX(int x)this.x=x;int getX()return x;class Bpublic void f(A a)a.setX(100);public class Epublic static void main(String args)A a=new A();a.setX(8);System.out.println(a.getX();B b=new B();b.f(a);System.out.println(a.getX();答: 810015.使用接口有哪些注意事项?模仿例子4.27,编写一个类实现两个接口的程序。答:一个类使用接口时,要有implements关键字,当一个类使用多个接口时,接口名要用逗号“,”隔开;使用接口的类除abstract类外,必须实现接口的所有方法,并且实现接口的方法时,方法名字、返回类型、参数个数及类型必须与接口中的完全一致;类在实现接口时,方法体一定要用public修饰,如果接口方法的返回类型不是void型,在类中实现接口时,方法体至少有一个return语句。 interface 表面积double allArea(double r);interface 体积double volu(double r);class Sph implements 表面积,体积double PI=3.14159;public double allArea(double r)return 4*PI*r*r;public double volu(double r)return 4.0/3*PI*r*r*r;public class Testpublic static void main(String args)double r=5.0;Sph a=new Sph();System.out.println("半径为5的球的表面积是:"+a.allArea(r);System.out.println("半径为5的球的体积是:"+a.volu(r);16.编写一个类A,该类创建的对象可以调用方法f输出英文字母表,然后再编写一个该类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字母表,而且调用子类新增的方法g输出希腊字母表。答: class Aint m;void f()for(m=65;m<91;m+)System.out.print(char)m+" ");for(m=97;m<123;m+)System.out.print(char)m+" ");System.out.println(" ");class B extends Aint i;void g()for(i=913;i<930;i+)System.out.print(char)i+" ");for(i=931;i<938;i+)System.out.print(char)i+" ");for(i=945;i<962;i+)System.out.print(char)i+" ");for(i=963;i<970;i+)System.out.print(char)i+" ");System.out.println(" ");public class Testpublic static void main(String args)B b=new B();System.out.println("我调用方法f输出英文字母表:");b.f();System.out.println("我调用方法g输出希腊字母表:");b.g();17.编写一个异常类MyException,再编写一个类Student,该类有一个产生异常的方法public void speak(int m) throws MyException,要求参数m的值大于1000时,方法抛出一个MyException对象。最后编写主类,在主类的main方法中用Student创建一个对象,让该对象调用speak方法。答: class MyException extends ExceptionString str1;MyException(int m)str1=m+"出现错误 可能造成的原因是取值大于1000"public void showStr1()System.out.println(str1);class Studentpublic void speak(int m) throws MyExceptionif(m>1000)MyException exception=new MyException(m);throw exception;elseSystem.out.println(m);public class Testpublic static void main(String agrs)int m;Student stu1=new Student();m=987;trystu1.speak(m);m=1234;stu1.speak(m);catch(MyException e)e.showStr1();18.编写一个类,该类有一个方法public int f(int a,int b),该方法返回a和b的最大公约数。然后再编写一个该类的子类,要求子类重写方法f,而且重写的方法将返回a和b的最小公倍数。要求在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回。要求在应用程序的主类中分别使用父类和子类创建对象,并分别调用方法f计算两个正整数的最大公约数和最小公倍数。答: class Apublic int f(int a,int b)if(a<b)int temp=0;temp=a;a=b;b=temp;int r=a%b;while(r!=0)a=b;b=r;r=a%b;return b;class B extends Apublic int f(int a,int b)int m;m=super.f(a,b);return (a*b)/m;public class Testpublic static void main(String args)A a=new A();System.out.println("18和102的最大公约数是:"+a.f(18,102);B b=new B();System.out.println("18和102的最小公倍数是:"+b.f(18,102);第5章 字符串1. 使用String类的public String toUpperCase()方法可以将一个字符串中的小写字母变成大写字母,使用public String toLowerCase()方法可以将一个字符串中的大写字母变成小写字母。编写一个程序,使用这两个方法实现大小写的转换。答: class Testpublic static void main(String args)String str="I can use Java"System.out.println("要转换的字符串是:"+str);String s=str.toUpperCase();System.out.println("转换成大写字符串是:"+s);s=str.toLowerCase();System.out.println("转换成小写字符串是:"+s);2. 使用String类的public String concat(String str)方法可以把调用该方法的字符串与参数指定的字符串连接,把str指定的串连接到当前串的尾部获得一个新的串。编写一个程序通过连接两个串得到一个新串,并输出这个新串。答: class Testpublic static void main(String args)String str1="I can u"String str2="se Java"String s=str1.concat(str2);System.out.println("将字符串"+str1+"与字符串"+str2+"连接后得到的新字符串是:");System.out.println(s);3. String类的public char charAt(int index)方法可以得到当前字符串index位置上的一个字符。说出下列程序的输出结果。public class E3public static void main(String args)String s="中国科学技术大学"char a=s.charAt(2),b=s.charAt(6);System.out.print(a);System.out.println(b);答: 科大4. 使用java.util包中的Arrays类的静态方法public static void sort(double a)可以把参数a指定的double型数组按升序排序,使用java.util包中的Arrays类的静态方法public static void sort(double a,int start,int end)可以把参数a指定的double型数组中从位置start到end-1位置的数按升序排序。写出下列程序的输出结果。import java.util.*;public class E4public static void main(String args)int a=23,67,89,90,-987;double b=12.89,90.87,34,678.987,-98.78,0.89;Arrays.sort(a);Arrays.sort(b,1,4);for(int i=0;i<=4;i+)System.out.print(ai+",");for(int i=0;i<b.length;i+)System.out.print(bi+",");答: -987,23,67,89,90,12.89,34.0,90.87,678.987,-98.78,0.89,5. 使用java.lang包中System类的静态方法arraycopy可以实现数组的快速复制,上机实习下列程序,并总结出arraycopy方法参数的使用规则。 public class ArrayCopypublic static void main(String args)char a1='a','b','c','d','e','f',b1='1','2','3','4','5','6'System.arraycopy(a1,0,b1,1,a1.length-1);System.out.println(new String(a1);System.out.println(new String(b1);byte a2=97,98,99,100,101,102,b2=65,67,68,69,70,71;System.arraycopy(b2,0,a2,3,b2.length-3);System.out.println(new String(a2);System.out.println(new String(b2);答:运行结果:abcdef1abcdeabcACDACDEFGarraycopy的方法是public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)。其中五个参数分别表示:src - 被复制的数组srcPos - 从第几个元素开始复制dest - 要复制到的数组destPos - 从第几个元素开始粘贴length - 一共需要复制的元素个数第6章 时间、日期和数字1. 用Data类不带参数的构造方法创建日期,要求日期的输出格式是:星期 小时 分 秒。答: import java.util.*;import java.text.*;class Testpublic static void main(String args)Date 时间=new Date();SimpleDateFormat s=new SimpleDateFormat("E HH时 mm分 ss秒");System.out.println(s.format(时间);2. 输出2006年2月的日历页,程序需处理闰年问题。答: import java.util.*;class Testpublic static void main(String args)int year=2006,month=2;int allDay;if(year%4=0&&year%100!=0)|(year%400=0)allDay=29;elseallDay=28;Calendar feb=Calendar.getInstance();feb.set(2006,1,1);int dat=feb.get(Calendar.DAY_OF_WEEK)-1;String a=new Stringdat+allDay;for(int i=0;i<dat;i+)ai=" "for(int i=dat,n=1;i<(dat+allDay);i+)if(n<=9)ai=String.valueOf(n)+" "elseai=String.valueOf(n)+" "n+;System.out.println(" "+year+" 年 "+month+"月");System.out.println("日 一 二 三 四 五 六");for(int j=0;j<a.length;j+)if(j%7=0)System.out.println(" ");System.out.print(aj);3. 计算某年、某月、某日和某年、某月、某日之间的天数间隔。要求年、月、日通过main方法的参数传递到程序中。答: import java.util.*;class Testpublic static void main(String args)Calendar c=Calendar.getInstance();c.set(2000,0,1);long time1=c.getTimeInMillis();c.set(2008,7,8);long time2=c.getTimeInMillis();long dayCous=(time2-time1)/(1000*60*60*24);System.out.println("2008年8月8日和2000年1月1日相隔"+dayCous+"天");4. 编程练习 Math类的常用方法。答: import java.text.*;public class Testpublic static void main(String args)double a=Math.abs(-10);System.out.println("-10的绝对值是:"+a);double maxNum=Math.max(123.456,-5.4321);System.out.println("123.456与-5.4321中的最大值是:"+maxNum);double minNum=Math.min(123.456,-5.4321);System.out.println("123.456与-5.4321中的最小值是:"+minNum);int rand

    注意事项

    本文(Java2实用教程课后答案-第三版-耿祥义-张跃平版精品资料.doc)为本站会员(封****n)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开