为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。现有两种工具:Car007 和Plane,其中Car007 的速度运算公式为:A*B/C,Plane 的速度运算公式为:A+B+C。需要编写三个类:ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未来如果增加第3种或多种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序
时间: 2024-03-20 14:42:44 浏览: 124
Java实验5.doc
好的,这是一个很好的问题。根据你的要求,我可以给出如下的解决方案。
首先,我们需要定义一个接口 `Common`,其中包含一个方法 `computeTime`,用于计算交通工具运行1000公里所需的时间。代码如下:
```java
public interface Common {
double computeTime();
}
```
然后,我们需要编写两个类 `Car007` 和 `Plane`,分别实现接口 `Common` 中的方法 `computeTime`。代码如下:
```java
public class Car007 implements Common {
private int A;
private int B;
private int C;
public Car007(int A, int B, int C) {
this.A = A;
this.B = B;
this.C = C;
}
@Override
public double computeTime() {
return 1000.0 / (A * B / C);
}
}
public class Plane implements Common {
private int A;
private int B;
private int C;
public Plane(int A, int B, int C) {
this.A = A;
this.B = B;
this.C = C;
}
@Override
public double computeTime() {
return 1000.0 / (A + B + C);
}
}
```
最后,我们需要编写一个类 `ComputeTime`,用于计算每一种交通工具运行1000公里所需的时间。代码如下:
```java
public class ComputeTime {
public static void main(String[] args) {
Common car007 = new Car007(10, 20, 30);
System.out.println("Car007 runs 1000 km in " + car007.computeTime() + " hours");
Common plane = new Plane(10, 20, 30);
System.out.println("Plane runs 1000 km in " + plane.computeTime() + " hours");
}
}
```
在这个程序中,我们先创建了一个 `Car007` 对象和一个 `Plane` 对象,然后分别调用它们的 `computeTime` 方法计算每一种交通工具运行1000公里所需的时间,并输出结果。
这个程序的好处在于,如果未来增加第3种或多种交通工具,我们只需要编写新的交通工具的程序,并让它实现接口 `Common` 中的方法 `computeTime`,就可以直接在 `ComputeTime` 类中使用新的交通工具计算运行时间,而不必修改以前的任何程序。
阅读全文