是否可以初始化数组,然后使用getter方法将其返回?

我正在初始化数组:

        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

fandly_jw 回答:是否可以初始化数组,然后使用getter方法将其返回?

我相信您共享的代码段中存在一些错误。

  1. 为什么您的getMethod有参数?像getFahrenSumTemp()之类的方法应该只是返回值,而不是在参数中传递值然后返回它们。就语法而言,这是正确的,但是在概念上是错误的。

  2. getCelsiusSumTemp()和getCelsiusWinTemp()方法仅返回索引i处的特定值。由于这些是方法,因此“ i”在哪里定义? i的值是多少?我实际上没有在这些方法中定义,因此它本身应该在其中引发编译错误。

  3. celsiusSumTemp和celsiusWinTemp数组在for循环范围内定义。因此,它们的作用域仅限于循环,如果您试图在循环之外访问它们,则会出现错误提示,找不到数组。

  4. celsiusWinTemp和celsiusSumTemp都在带有空值的for循环中声明。当您执行类似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;
        }



    }

本文链接:https://www.f2er.com/2816504.html

大家都在问