收藏 分销(赏)

[Java程序设计教程(第三版)课后习题答案.docx

上传人:二*** 文档编号:4575564 上传时间:2024-09-30 格式:DOCX 页数:42 大小:88.13KB
下载 相关 举报
[Java程序设计教程(第三版)课后习题答案.docx_第1页
第1页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、参考答案第1章Java语言有哪些主要特点?平台独立性平安性多线程网络化面向对象Java编程语言有哪四种不同的平台?Java编程语言有四种平台:Java标准版(Java SE)、Java企业版(Java EE) Java微 型版(JavaME)和JavaFX。所有 Java都由Java虚拟机(VM)和应用程序编程接口 (API) 组成。Java虚拟机是一个用于特定硬件和软件平台的程序,它运行Java技术应用程序。 API是一组软件组件,可用于创立其他软件组件或应用程序。每个Java平台都提供了一个 虚拟机和一个APL这使得为该平台编写的应用程序可以在具有Java编程语言所有优点的 任何兼容系统上

2、运行:平台独立性、功能强大、稳定性、易于开发和平安。Java SE当大多数人想到Java编程语言时,他们会想到Java SE API。Java SE的API提供了 Java编程语言的核心功能。它定义了从Java编程语言的基本类型和对象到用于网络、安 全、数据库访问、图形用户界面(GUI)开发和XML解析的高级类的所有内容。除了核心 API之外,Java SE平台还包括虚拟机、开发工具、部署技术以及Java技术应用程序中常 用的其他类库和工具包。Java EEJava EE平台构建在Java SE平台之上。Java EE平台为开发和运行大规模、多层、可 扩展、可靠和平安的网络应用程序提供了 AP

3、I和运行时环境。Java MEJava ME平台提供了一个API和一个小型虚拟机,用于在小型设备(如手机)上运行 Java编程语言应用程序。该API是Java SEAPI的一个子集,以及对小型设备应用程序开 发有用的特殊类库。Java ME应用程序通常是Java EE平台服务的客户端。JavaFXJavaFX是一个使用轻量级用户界面API创立富Internet应用程序的平台。JavaFX应 用程序使用硬件加速的图形和媒体引擎来利用更高性能的客户端和现代外观以及用于连接 到网络数据源的高级APL JavaFX应用程序可能是Java EE平台服务的客户端。1. Java Application的开

4、发步骤有哪些?Java Application 的开发步骤:(1)下载JDK软件并安装;(2)配置相应的环境变量(path和classpath);(3)编写Java源程序(文本编辑器或集成开发环境IDE);(4)编译Java源程序,得到字节码文件(javac *.java);(5)执行字节码文件(java字节码文件名)。int x=100, y=200, z=300;m(x, y, z);System.out.println(nx=n+x+n y=n+y+n z=n+z);)x=100 y=200 z=3008.编写一个判断某个整数是否为素数的方法。 public boolean prime(

5、int x)(for(intj=2;jx;j+)检验是否满足素数条件if (x%j=O)不满足return false; return true; ) 9.编写两个方法,分别求两个整数的最大公约数和最小公倍数,在主方法中由键盘输入两 个整数并调用这两个方法,最后输出相应的结果。 import java.io.*;public class Test public static void main(String args)int a=0;(请输入数 a:);try(BufferedReader br=new BufferedReader(new InputStreamReader(System.i

6、n); a=Integer.parseInt(br.readLine();catch(IOException e)int b=0;System, out print(请输入数 b:n);tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);b=Integer.parseInt(br.readLine();catch(IOException e)if(a=0|b=0)System, out. printin(输入不合法! ”);System, out. printing 最大公约数为:”+Gys(a,b)

7、;System, out. printin(最小公倍数为:+Gbs(a,b);public static int Gys(int a,int b) int r=0;if(ab) r=a;b=a;a=r;int i= 1;while(i!=O)i=a%b;a=b;b=i;) return a;)public static int Gbs(int a,int b)(int ab=a*b;int r=0;if(ab)r=a;b=a;a=r;int i= 1;while(i!=O)i=a%b;a=b;b=i; return ab/a;)10.以下程序执行后的输出为 public class Test(

8、static int ml(int a ,int b)(int c;a+=a;b+=b;c=m2(a,b);return (cc);)static int m2( int ajnt b) (int c;c=a*b%3; return( c);)public static void main(String args)(int x=l,y=3,z;z= ml(x,y);System.ouLprintln(Hz=n+z);)z=0n.编写一个方法,实现求某个整数的各个位上的数字之和的功能。import java.io.*;public class Test public static void ma

9、in(String| | args) int i,a=0,s=0;(”请输入数 a:);try(BufferedReader br=new BufferedReader(new InputStreamReader(System.in); a=Integer.parseInt(br.readLine(); catch(IOException e) for( i=10;a%i!=a;i*=10) (s+=(a%i)/(i/10);)s+=a/(i/10);System. out. printin(各位数之和为+s);).编写程序实现十进制整数到八进制的转换。import j ava. io.*;p

10、ublic class Test public static void main(String | args) int i,k,a=0,d,s=0;System, out. print(请输入数try(BufferedReader br=new BufferedReader(new InputStreamReader(System.in);a=Integer.parseInt(br.readLine();catch(IOException e)d=a%8;s+=d;k=10;for(i=64;a-d! =0;i*=8)(s+二(a-d)%i*8/i*k;k*=10;d=a%i;)System,

11、 out. printin(八进制数为“+s);).用于指出数组中某个元素的数字被叫做;数组元素之所以相关,是因为它们具有相同的 和 O下标;数组名和数据类型。12 .数组int results = new int6所占存储空间是 字节。24.使用两个下标的数组被称为 数组,假定有如下语句:float scores = 1, 2, 3, 4, 5, 6, 7, 8, 9;贝(J scores.Iength 的值为: , scoresl.length 的值为: , scoresll的值为:。二维;3; 2; 5o.从键盘上输入10个双精度浮点数,计算出这10个数的和以及它们的平均值。要求分 别编

12、写求和及求平均值的方法。import java.io.*;public class Test(public static void main(String args)throws lOException(InputStreamReader reader=new InputStreamReader(System, in);BufferedReader input=new BufferedReader(reader);String temp;double x=new double10;for(int i=0;i10;i+)(temp=input.readLine();xi = Double.par

13、seDouble(temp);)S(x);Avg(x);)public static void S(double x)(计算并输出和double sum=0;for(int i=0;i10;i+)(sum+=xi;)(总和:+sum);)public static void Avg(double x)(计算并输出平均数double sum=0;for(int i=0;i10;i+)(sum+=x|i;(平均数:n+sum/10);)13 .利用数组输入6位大学生3门课程的成绩,然后计算(1)每个大学生的总分;(2)每门课程的平均分;import java.io.*;public class S

14、corespublic static void main(StringJ args)throws lOException int sum=O; 总分int n=6;/学生数String temp;InputStreamReader reader=new InputStreamReader(System.in);BufferedReader input=new BufferedReader(reader);int x=new int63;录入成绩for(int i=0;i6;i+)(for (intj=O;j3 ;j+)(System. out. print(i+l)+”号同学”+(j+l)+”

15、号课程分数) temp=input.readLine();xij = Integer.parselnt(temp);)计算并输出每一位同学的总分for(int i=0;in;i+)(for (intj=O;j3 ;j+)(sum+=xi 皿;System.out.println(i+l)+”号同学总分:+sum);sum=0;)/计算并输出每一门课程的平均分for(int i=0;i3;i+)(for (int j=O;jn ;j+ )(sum+=xji;)System.out.println(i+1)+”号课程班级平均分:,+sum*1.0/n); sum=0;).编写一个方法,实现将字符数

16、组倒序排列,即进行反序存放。 import java.io.*;public class Testpublic static void main(String args)throws lOException (char c = O,Ty?m?p?i?c?rever(c);System.out.println(c);)public static void rever(char c)(char t;for(int i=O,j=c.length-1 ;i this.balance)取款金额大于余额(余额缺乏! ”); ) elsethis.balance = this.balance - amoun

17、t;原金额减去支取金额 ) 修改密码 public void setPassword(String password) this.password = password; ) public static void main(String| args)Bank customer = new Bank(”6666888866668888”,“Zhang);/初始化账户信息 customer.setPassword( 123456”);/修改账户密码System, out. printing欢迎光临模拟银行)Scanner scan = new Scanner(System.in);(”请输入存款金

18、额:); double amount = scan.nextDouble();customer.depositMoney(amount);System.out.printing 当前余额为:+customer.getBalance()+”元)(”请输入取款金额:”); amount = scan.nextDouble();customer. withdrawMoney(amount);System.out.println(H 当前余额为:”+customer.getBalance()+“元”); ) )10 .先在一个包中编写类ClassA,要求该类包括4种不同访问权限的成员变量和方法。 再在

19、另一个包中编写类ClassB,在该类中编写一个方法访问ClassA的成员。在程序中实现 所有可以实现的访问,并说明所有不能访问的成员的原因。答:package A;public class ClassA public int publiclnt;int defaultlnt;protected int protectedlnt;private int privatelnt;public void publicMethod()System.out.println(HpublicMethodn);)void defaultMethod()System.out.println(ndefaultMet

20、hodn);)protected void protectedMethod() System.out.println(nprotectedMethodn);)private void privateMethod() System.out.println(HprivateMethodH);)package B;import A.*;class ClassB extends Class A void accessTest(ClassA a, ClassB b)a.publiclnt;a.defaultlnt;a.protectedlnt;a.privatelnt;b.publiclnt;b.def

21、aultlnt;b.protectedlnt;b.privatelnt;a.publicMethod();a.defaultMethod();a.protectedMethod();a.privateMethod();b.publicMethod();b.defaultMethod();b.protectedMethod();b.privateMethod(); )备注:上述代码只是示意,请读者自行完善,并在ClassB中添加main方法,或者再定义一 个主类。亲自上机编译、运行一下,体验4种不同访问权限的作用。2. C3 .接口中可以有的语句为;(从ABCD中多项选择)一个类可以继承父类,实

22、现接口; 一个接口可继承接口;(从EF中单项选择) 接口继承父类,实现其它接口;实现某个接口的类被该接口类型引用;(从 GH中单项选择)int x;(A) int y=0;public void aa();(B) public void bb( )System.out.println(Hhellon);(E)仅一个(F) 一个或多个(G)可以(H)不可以答案:BC; E; F; F; H; H; G4 .解释this和super的意义和作用。答:Java中,this用来引用当前对象,super用来引用当前对象的父类对象。5 .什么是继承?继承的意义?如何定义继承关系?答:继承是一种由已有的父类

23、派生子类的机制。通过继承可以实现代码的复用,使程序的复杂性线性地增长,而不是随规模增大呈几何 级数增长。由于父类代表了所有子类的共性,而子类既继承了其父类的共性,又具有本身的特性, 在定义子类时,只要定义它本身所特有的属性与方法就可以了。继承采用extends关键字。6 .什么是多态? Java程序如何实现多态?有哪些实现方式?答:简单说,多态性就是指同名的方法有不同的实现。调用者只需使用同一个方法名, 系统会根据参数表的不同或实际指向的对象不同,调用相应的不同方法,从而实现不同的功 能。多态性分静态多态性和动态多态性,前者由方法重载来实现,后者由方法重写(覆盖) 来实现,前者在编译时确定方法

24、,后者要到运行时才能确定方法。7 .利用多态性编程,实现求三角形、长方形和圆形面积。方法:抽象出一个共享父类, 定义一函数为求面积的公共界面,再重新定义各形状的求面积函数。在主类中创立不同类 的对象,并求得不同形状的面积。提示:抽象出一个共享父类,声明一个为求面积的抽象方法,再重写各形状的求面积方 法。在主类中创立不同类的对象并都由父类变量引用,然后求不同形状的面积。abstract class Shapeabstract float area();class Circle extends Shape(public float r;Circle(float r)(this.r = r;)pub

25、lic float area()(return 3.14*r*r;)class Rectangle extends Shape(public float width,height;Rectangle (float w, float h) (width = w;height = h;)public float area()(return width*height;)/请自行补充三角形的类定义.请自行定义主类8 .定义一个球类Ball,包含私有成员变量半径r,两个公有成员方法:设定半径和得 到半径。定义一个台球类Billiards,继承Ball类,包含私有成员变量颜色,两个公有成员 方法:设定颜色

26、和输出信息,其中输出信息要求输出台球的颜色和半径值。定义一个主类 TestBall,测试上述两个类。答:class Ballprivate double r;public void setR(double x)r = x;public double getR() return r;)class Billiards extends Ball private String color;public void setCol(String col) color = col;public void show()System, out. printin(台球的颜色是”+color+”,半径是“+getR(

27、);)public class ExerciseSixEightpublic static void main(String args)Ball bl = new Ball();bl.setR(lO);System, out. printin(球的半径是+b l.getR();Billiards b2 = new Billiards();b2.setR(5);b2.setCol(蓝色)b2.show(); )9 .定义一个名为Vehicle的接口,其中包括两个方法:start()和stop()。另外设计两 个类,分别为Bike和Bus,然后在这两个类中实现Vehicle接口。设id一个名为in

28、terfaceDemo 的主类,在它的main()方法中创立Bike和Bus的对象,并访问start()和stop()方法。 答:interface Vehicle public void start();public void stop();)class Bike implements Vehiclepublic void start()System.out.println(HBike 启动了); public void stop()System.out.println(HBike 停止 了 ); ) ) class Bus implements Vehicle public void start()System.out.println(HBus 启动了); )public voi

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服