从方法返回值并将其存储到Array中以便在另一个方法上使用

时间:2014-04-10 09:28:04

标签: java arrays methods

我在名为Computation的类中有一个方法getDiff(),它计算两个值之间的差异并返回结果的绝对值,如下所示:

public int getDiff() {
    Computation amg = new Computation();

    setTemp = 55;
    dT      = (actualMouldTemp - setTemp);
    AMT     = (int) Math.abs(dT);
    System.out.println("The temperature difference is : "+ AMT);

    return AMT;
}

我希望返回的值AMT存储在Array中,然后用于进一步计算加热时间,如下所示:

public double getHeatingTime1() {
    Controller jose    = new Controller();
    int[]      Results = new int[4];
    //Results [] = new int[4];
    //Results [] = Computation.class;

    Q      = 3; //heating in kW
    Cp     = 4.2; //Specific heat capacity of water
    volume = 6; 

    //AMT = 
    System.out.println("AMT IS " + Results[1]);
    long HT1 = (long) ((volume * Cp * Results[1]) / Q);

    return HT1;
}

问题是我创建了一个存储这些结果的数组,但是我没有在方法Results[1]中看到getHeatingTime1()的值,因为它给我的加热时间为零印刷线。我最好如何在代码中代表Array这样的代码?谢谢

我使用类Computation作为处理我的JADE代理的所有计算的类。所以会发生的是,getDiff()中用于actualMouldTemp的值是方法getAnswer()返回的值,如下所示:

public double getAnswer() {

      TemperatureControlAgent ta = new TemperatureControlAgent();
      TemperatureControlAgent.CoolingOrdersServer lp = ta.new CoolingOrdersServer();

        int rand1[] = new int[3];

        RandomVariableGenerator var = new RandomVariableGenerator();
        rand1 = RandomVariableGenerator.getRand();

       meltTemp = 245;
       setTemp = 55;
        System.out.println("Melt Temp is  : "+ meltTemp);
        //System.out.println("Melt Temp is  : "+ MA);

        actualMouldTemp = (int)  ((0 - 51.4)+(0.302 * meltTemp) +(1.64 * rand1[0])+   (0.201 * rand1[1]));

        System.out.println("The actual mould temperature is :" +actualMouldTemp + "       Degrees celcius" );

        //getDiff(actualMouldTemp);

        return actualMouldTemp;

 }

返回值actualMouldTemp由Temperature control Agent使用。相同的返回值用于计算温度控制剂也调用的差值。问题是当从另一个代理程序(操作代理程序)调用值时,值AMT为零。因此需要将它们存储在一个数组中并从那里访问它们。这是解决这个问题的最佳方法吗?还有什么其他选择不涉及创建数组?

2 个答案:

答案 0 :(得分:1)

要存储在数组中,您需要提供存储值的数组索引

Results[0] = getDiff();

System.out.println("AMT IS "+ Results[0]);

另外,

  • 数组从索引0开始
  • 尝试将值作为参数传递给getDiff方法

通过做结果[1]你浪费了一个空间......所以从0开始

答案 1 :(得分:1)

如果您像这样重写diff()函数,很难理解为什么首先需要数组:

public int getDiff(int targetTemp, int currentTemp) {
    int diff = (int) Math.abs(targetTemp - currentTemp);
    System.out.println("The temperature difference is : "+ diff);
    return diff;
}

然后在你的计算中使用它 - 你应该在路上。