Java2实用教程课后答案第三版耿祥义张跃平版

上传人:痛*** 文档编号:88494879 上传时间:2022-05-11 格式:DOC 页数:19 大小:94.50KB
收藏 版权申诉 举报 下载
Java2实用教程课后答案第三版耿祥义张跃平版_第1页
第1页 / 共19页
Java2实用教程课后答案第三版耿祥义张跃平版_第2页
第2页 / 共19页
Java2实用教程课后答案第三版耿祥义张跃平版_第3页
第3页 / 共19页
资源描述:

《Java2实用教程课后答案第三版耿祥义张跃平版》由会员分享,可在线阅读,更多相关《Java2实用教程课后答案第三版耿祥义张跃平版(19页珍藏版)》请在装配图网上搜索。

1、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方法,这个方法是程

2、序执行的入口。小应用程序没有main方法。 应用程序的主类不一定用 public 修饰;小应用程序的主类必须用 public 修饰。3. Java程序是由什么组成的? 一个程序中必须要有public类吗? Java源文件的命名规则是怎样的?答:Java程序由类组成。 应用程序可以没有 public 类;小应用程序一定有一个类是 public 类(主类)。 应用程序 : 如果只有一个类,源文件名与该类的类名相同,拓展名为.java ;有多个类时,如果有 public 类(最多一个) , 源文件名与 public 类的类 名相同,拓展名是 .java ;没有 public 类,源文件名与任何一个类

3、的类名 相同即可,拓展名为 .java 。小应用程序 : 源文件名与主类的类名相同,拓展名是 .java 。4. 在运行小程序的HTM文件中可以使用codebase属性指定小程序的字节码所驻留的目录。如果不使用codebase属性,小程序的字节码文件必须和运行它的HTM文件在同一目录中。编写一个小程序并将小程序的字节码存放在某个目录中,比如C:5000 ;把运行该小程序的HTM文件(注意其中的codebase属性) 存放在另一个目录中。答: 以书中小应用程序为例进行说明 :编写Java小应用程序源代码import java.applet.*;import java.awt.*;public c

4、lass 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 文件夹下; 编写小应用程序的HTM源文件: 将上述编写好的代码命名为Boy.html ;并将此文件存放在 C:5000 文件夹以外的任意一个文件夹

5、中(如C:1000 ); 运行 Boy.html 。第 2章 标识符、关键字和数据类型1. 什么叫标识符?标识符的规则是什么?答:用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符,而且关键字不能作为标识符。2. 什么叫关键字?请说出 5个关键字。答:Java语言中已经被赋予特定意义的一些单词。 class break public return static extends等。3. Java 的基本数据类型都是什么?答: boolean( 逻辑型 ) char( 字符型 ) float 、 double( 浮点

6、型 ) 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(

7、b0=+b0);答:数组b的长度:4b0=16. 上机运行下列程序,注意观察输出结果。public class Epublic static void main(String args)for(int i=20302;i20322;i+)System.out.println(char)i);答: 低住佐佑佒体佔何佖佗佘余佚佛作佝佞佟你佡输出变量或表达上机调试下列程序,7. System.out.println( “你好” ) ;可输出字符串,也可以使用 System.out.println( ) 式的值,只需使用并置符号“ +”将变量、表达式或一个常数值与一个字符串并置即可,如 System.

8、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

9、.println(x+y= +(x+y);System.out.println( +x+y+=234432);答 : 234468我输出结果后不回车我输出结果后自动回车到下一行x+y= 666234432=2344328. 编写一个 Java 应用程序,输出全部的希腊字母。答:public class XLWordspublic static void main(String args)for(int i=913;i930;i+)System.out.print(char)i+ );for(int j=931;j938;j+)System.out.print(char)j+ );for(int

10、 k=945;k962;k+)System.out.print(char)k+ );for(int t=963;tA)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

11、=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到1 0的阶乘之和是 :+sum);4. 编写一个应用程序,求 100以内的全部素数。答:class Primespublic static

12、 void main(String args)int w=1;for(int i=2;i=100;i+)for(int j=2;ji;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

13、*=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);1000之内的所有完数。6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求答:class Wanshupublic static void main

14、(String args)int x,i,sum;for(x=1;x=1000;x+)sum=0;for(i=1;ix;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.printl

15、n(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+n8888的最大正整数n。答:class Maxnpublic static void main(String args)int k=1,sum=0;while(sum+=k)8888)k+;k-;System.out.println( 最大能取到 :+k);

16、第4章 类、对象和接口1. 类中的实例变量在什么时候会被分配内存空间?答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。2. 什么叫方法的重载?构造方法可以重载吗?答:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同, 或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。构造方法可以重载。3. 类中的实例方法可以操作类变量 (static 变量)吗?类方法 (static 方法)可以操作实例变量吗? 答: 类中的实例方法可以操作类变量。类方法不可以操作实例变量4. 类中的实例方法可以用类名直接调用吗?答: 类中的实例方法不可以用类名直接

17、调用。5. 举例说明 protected 方法和友好方法的区别。答: 当子类与父类不在同一个包中时, 子类可以继承父类的 protected 方法;而友好方法此时则不能被子类 继承。6. 举例说明类变量和实例变量的区别。答: 书写 : 定义成员变量时,类变量有 static 修饰;实例变量没有 static 修饰。例 : class Aint x; / 实例变量static int y; / 类变量内存 : 不创建对象,类的实例变量不会被分配内存空间;类变量被分配相应的内存空间。 不同对象的实例变量被分配不同的内存空间;不同对象的类变量被分配相同的内存空间。 任何一个对象改变类变量,其他对象的

18、相应类变量也发生相应变化。一个对象的实例变量发生改变,不影响其他对象的相应实例变量。例: 执行语句: 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; / 合法

19、7. 子类将继承父类的哪些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?在子类中是 否允许有一个方法和父类的方法名字相同,而类型不同?答:子类和父类在同一个包中时,子类可以继承父类的除private属性的所有方法和成员变量,当子类与父类不在同一个包中时,子类只能继承父类的protected和public属性的成员变量和方法。 子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量;子类中定义一个方 法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同,子类就隐藏从父类 继承来的方法(方法的重写)。 在子类中允许有一个方法和父类的方法名字相同而

20、类型不同。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.

21、98f;public static void main(String args)float c=a+b;System.out.println(c=+c);main 操作了实例变量 a。答 : 语句 float c=a+b; 错误。原因是类方法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);Sy

22、stem.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

23、. 使用接口有哪些注意事项?模仿例子 4.27 ,编写一个类实现两个接口的程序。答 : 一个类使用接口时, 要有 implements 关键字, 当一个类使用多个接口时, 接口名要用逗号 “,”隔开; 使用接口的类除 abstract 类外,必须实现接口的所有方法,并且实现接口的方法时,方法名字、返回类型、 参数个数及类型必须与接口中的完全一致;类在实现接口时,方法体一定要用 public 修饰,如果接口方法 的返回类型不是 void 型,在类中实现接口时,方法体至少有一个 return 语句。 interface 表面积double allArea(double r);interface 体

24、积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);Sy

25、stem.out.println(半径为 5 的球的体积是 :+a.volu(r);16. 编写一个类A,该类创建的对象可以调用方法f输出英文字母表,然后再编写一个该类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字母表,而且调用子类新增的方法g输出希腊字母表。答 : class Aint m;void f()for(m=65;m91;m+)System.out.print(char)m+ ); for(m=97;m123;m+)System.out.print(char)m+ );System.out.println( );class B e

26、xtends Aint i;void g()for(i=913;i930;i+)System.out.print(char)i+ );for(i=931;i938;i+)System.out.print(char)i+ );for(i=945;i962;i+)System.out.print(char)i+ );for(i=963;i970;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 输出英文字母表 :);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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