我正在初始化数组:
double [] fahrenSumTemp = {73.2, 81.5, 75.4, 78.2, 71.9, 72.6};
double [] fahrenWinTemp = {53.2, 50.3, 51.2, 54.1, 52.8, 51.9};
}
然后,我使用等式将数组从华氏温度更改为摄氏温度:
for (int i = 0; i < fahrenSumTemp.length; i++){
double [] celsiusSumTemp = {};
celsiusSumTemp [i] = fahrenSumTemp[i] * (9/5) + 32;
}
for (int i = 0; i < fahrenWinTemp.length; i++){
double [] celsiusWinTemp = {};
celsiusWinTemp[i] = fahrenWinTemp[i] * (9/5) + 32;
}
}
然后我想使用getter方法返回数组fahrenSumTemp,fahrenSumTemp,celsiusSumTemp,celsiusWinTemp中的值:
public double getFahrenSumTemp(double [] fahrenSumTemp){
return fahrenSumTemp;
}
public double getCelsiusSumTemp(double [] celsiusSumTemp){
return celsiusSumTemp[i];
}
public double getFahrenWinTemp(double [] fahrenWinTemp){
return fahrenWinTemp;
}
public double getCelsiusWinTemp(double [] celsiusWinTemp){
return celsiusWinTemp[i];
}
但是存在错误,因为该方法找不到数组,但是我认为使用getter方法可以找到它?错误是:不兼容的类型double []无法转换为double
看来您想要执行以下操作:
import java.util.Arrays;
public class Main {
double[] fahrenSumTemp = { 73.2, 81.5, 75.4, 78.2, 71.9, 72.6 };
double[] fahrenWinTemp = { 53.2, 50.3, 51.2, 54.1, 52.8, 51.9 };
double[] celsiusSumTemp = new double[fahrenSumTemp.length];
double[] celsiusWinTemp = new double[fahrenWinTemp.length];
public double[] getFahrenSumTemp() {
return fahrenSumTemp;
}
public double[] getFahrenWinTemp() {
return fahrenWinTemp;
}
public double[] getCelsiusSumTemp() {
return celsiusSumTemp;
}
public double[] getCelsiusWinTemp() {
return celsiusWinTemp;
}
private void initCelsiusTemps() {
for (int i = 0; i < fahrenSumTemp.length; i++) {
celsiusSumTemp[i] = fahrenSumTemp[i] * (9 / 5) + 32;
}
for (int i = 0; i < fahrenWinTemp.length; i++) {
celsiusWinTemp[i] = fahrenWinTemp[i] * (9 / 5) + 32;
}
}
public static void main(String[] args) {
Main test = new Main();
test.initCelsiusTemps();
System.out.println(Arrays.toString(test.getFahrenSumTemp()));
System.out.println(Arrays.toString(test.getFahrenWinTemp()));
System.out.println(Arrays.toString(test.getCelsiusSumTemp()));
System.out.println(Arrays.toString(test.getCelsiusWinTemp()));
}
}
输出:
[73.2, 81.5, 75.4, 78.2, 71.9, 72.6]
[53.2, 50.3, 51.2, 54.1, 52.8, 51.9]
[105.2, 113.5, 107.4, 110.2, 103.9, 104.6]
[85.2, 82.3, 83.2, 86.1, 84.8, 83.9]
我相信,您共享的代码段中存在一些错误。
为什么您的getMethod有参数?像getFahrenSumTemp()之类的方法应该只是返回值,而不是在参数中传递值然后返回它们。就语法而言,这是正确的,但是在概念上是错误的。
getCelsiusSumTemp()和getCelsiusWinTemp()方法仅返回索引i处的特定值。由于这些是方法,因此“ i”在哪里定义? i的值是多少?我实际上没有在这些方法中定义,因此它本身应该在其中引发编译错误。
celsiusSumTemp和celsiusWinTemp数组在for循环范围内定义。因此,它们的作用域仅限于循环,如果您试图在循环之外访问它们,则会出现错误提示,找不到数组。
celsiusWinTemp和celsiusSumTemp都在带有空值的循环内部声明。当您执行类似double [] arrname = {}的操作时,数组的大小将定义为0,并且您将无法添加超出数组大小的项目。因此,当您试图向这些数组添加值时,代码将返回错误提示arrayIndexOutOfBounds。
仅显示出来,可能这就是您想要做的。
public static void main(String[] args) {
double [] fahrenSumTemp = {73.2, 81.5, 75.4, 78.2, 71.9, 72.6};
double [] fahrenWinTemp = {53.2, 50.3, 51.2, 54.1, 52.8, 51.9};
double [] celsiusSumTemp = new double[fahrenSumTemp.length];
double [] celsiusWinTemp = new double[fahrenWinTemp.length];
for (int i = 0; i < fahrenSumTemp.length; i++){
celsiusSumTemp [i] = fahrenSumTemp[i] * (9/5) + 32;
}
for (int i = 0; i < fahrenWinTemp.length; i++){
celsiusWinTemp[i] = fahrenWinTemp[i] * (9/5) + 32;
}
}
}