我有一个汽车类,如下:
public class Car {
private String reg = null;
double[] tyre = {0.0,0.0,0.0,0.0};
public Car(String reg, double[] tyre) {
super();
this.reg = reg;
this.tyre = tyre;
}
public double calculateAverageTyrePressure() {
double p = tyre[0] + tyre[1] + tyre[2] + tyre[3];
return p/4.0;
}
}
我有一个测试类,我已经创建了一个对象,并希望为它的轮胎压力给它4个十进制值,但我无法弄清楚如何输入值而不会出现错误,如果我输入4个十进制值我希望我将构造函数更改为(String,double,double,double,double),这不是任务所要做的。
测试类:
public class CarTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Car car1 = new Car("V380 FEL", !!Need tyre values here!!);
}
}
P.S抱歉如果这似乎是一个简单的问题,我刚开始使用Java并尝试学习。
答案 0 :(得分:3)
试试Car car1 = new Car("V380 FEL", new double[] { 0.0, 0.0, 0.0, 0.0});
。您需要使用其中的所有四个小数值初始化Java数组,以便满足当前构造函数。
答案 1 :(得分:2)
Car car1 = new Car("V380 FEL", new double[]{0.0,0.0,0.0,0.0});
答案 2 :(得分:1)
要回答当前的问题,您的构造函数将获取一个数组,如果您执行类似
的操作new Car("hooptie", 32.0, 32.0, 32.0, 32.0)
错误,正如您已经看到的那样,抱怨它无法找到匹配的构造函数。
一种选择是:
new Car("Hooptie", new double[]{32.0, 32.0, 32.0, 32.0}) ;
那就是说,我认为我们有机会在一点点改进你的API。汽车级别如何选择存放轮胎非常适合汽车级别。我不确定我们是否想要使用汽车类将其泄露给代码。
例如,如果我作为使用您的汽车类的人这样做会发生什么:
new Car("7 wheeler", new double[]{32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0 } )
应该允许吗?我不知道,这取决于你。
另一种选择是创建一个接收4个轮胎参数的构造器,然后将它们添加到内部轮胎阵列中。
new Car(String name, double tyrePressureOne, double tyrePressure2... ) {
this.name = name;
tyres[0] = tyrePressureOne;
...
}