Java程序设计之网络编程(第2版)各章习题和思考题答案(3)

2020-04-14 18:17

之地。 与方法的覆盖不同,重载不是子类对父类同名方法的重新定义,而是在一个类中定义了同名的不同方法。

4、 什么是多态?面向对象程序设计为什么要引人多态的特性?使用多态有什么优点?

解:一个类中存在多个同名的方法,称为多态。把抽象功能和目的相同,而具体实现

因不同情况而异的方法命名为同名方法,符合面向对象程序设计中抽象、提升概念,封装、

隐藏细节的特点,从而提高了程序的简洁性和可读性,降低了类和程序模块直接的相互耦

合和依赖。

5、 父类对象与子类对象相互转化的条件是什么?如何实现它们的相互转化?

解:一个子类对象也可以被合法地视为一个父类的对象,即一个父类对象的引用,其

指向的内存单元可能实际上是一个子类的对象。在这种情况下,可以使用强制类型转换,

将父类对象的引用转换成实际的子类对象的引用

6、 一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象

方法?

解:使用关键字implements可以定义类实现某接口。实现某接口的类如果不是抽

象类,则需要通过重载来实现该接口中的所有抽象方法;如果这个类是抽象类,则它可以

不必实现该接口中的所有抽象方法。

7、 为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。现有两种工具:Car007 和Plane,其中Car007 的速度运算公式为:A*B/C,Plane 的速度运算公式为:A+B+C。需要编写三类:

ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四个参数分别时整数A、B、C,举例如下:

计算Plane的时间:\ 计算Car007的时间:\ 如果第3种交通工具为Ship,则只需要编写Ship.java,运行时输入:\

提示:充分利用接口的概念,接口对象充当参数。

实例化一个对象的另外一种办法:Class.forName(str).newInstance();例如需要实例化一个Plane对象的话,则只要调用

Class.forName(\便可。

解:ComputerTime.java 源程序: import pkg1.pkg2.*; import java.lang.*;

public class ComputerTime

{ public static void main(String args[])

{ System.out.println(\交通工具: \ System.out.println(\参数A: \ System.out.println(\参数B: \ System.out.println(\参数C: \ double A=Double.parseDouble(args[1]); double B=Double.parseDouble(args[2]); double C=Double.parseDouble(args[3]); double v,t;

try { Common d=(Common) Class.forName(\

v=d.runtimer(A,B,C); t=1000/v;

System.out.println(\平均速度: \ System.out.println(\运行时间:\小时\ }

catch(Exception e)

{ System.out.println(\ }

} }

包pkg1中Car007.java的源程序: package pkg1;

import pkg1.pkg2.*;

public class Car007 implements Common

{ public double runtimer(double A,double B,double C) { System.out.println(\ return A*B/C; } }

包pkg1中Plane.java的源程序: package pkg1;

import pkg1.pkg2.*;

public class Plane implements Common {

public double runtimer(double A,double B,double C) {

return A+B+C; } }

包pkg2中Common.java的源程序: package pkg1.pkg2;

public interface Common

{ double runtimer(double A,double B,double C); }

8、编写求解几何图形(如直线、三角形,矩型,圆,多边型)的周长,面积的应用程序,要求用到继承和接口等技术。

解:// Solution of drawings as triangle,rectangle,circle

import java.io.*;

// interface

interface getProperty

{

double Pi=3.1415926;

double getArea();

double getCircum();

String getName(); } //

class mpoint {

static int i=0;

double x,y;

String strmpoint;

mpoint(double a,double b)

{

this.x=a;

this.y=b;

}

double getX(){

return x;

}

double getY()

{

return y;

}

String getString()

{

i+=1;

strmpoint=\ // name of a mpoint;

return strmpoint;

} }

//disp class

class disp {

double area;

double circum;

String drawingName;

disp(double a, double b, String ss){

this.area=a;

this.circum=b;

this.drawingName=ss;

}


Java程序设计之网络编程(第2版)各章习题和思考题答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:南京农业大学关于SURE+项目招收博士生和博士后的通知-2016-12-9

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: