为某研究所编写一个通用程序,用来计算每一种交通工具运行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 22:42:55 浏览: 70
好的,我明白了。这是一个典型的面向对象编程的问题。下面是我的回答:
首先,我们需要创建一个接口Common.java,其中定义了一个方法getSpeed(),用于获取交通工具的速度。
```java
public interface Common {
public double getSpeed();
}
```
然后,我们需要创建两个类Plane.java和Car007.java,它们都实现了接口Common.java,并分别计算了它们的速度。
```java
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;
}
public double getSpeed() {
return A + B + C;
}
}
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;
}
public double getSpeed() {
return A * B / C;
}
}
```
最后,我们需要创建一个ComputeTime.java类,用于计算每种交通工具运行1000公里所需的时间。
```java
public class ComputeTime {
public static void main(String[] args) {
Common[] vehicles = new Common[2];
vehicles[0] = new Car007(100, 20, 5);
vehicles[1] = new Plane(200, 50, 30);
for (Common vehicle : vehicles) {
double speed = vehicle.getSpeed();
double time = 1000 / speed;
System.out.println("This vehicle takes " + time + " hours to run 1000 kilometers.");
}
}
}
```
在未来增加第3种或多种交通工具时,只需要创建新的类并实现Common接口,然后在ComputeTime.java中添加新的对象即可,不需要修改已有的程序。
阅读全文