簡體   English   中英

從方法返回值並將其存儲到Array中以便在另一個方法上使用

[英]Returning a value from a method and storing it into an Array for use on another method

我在名為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;
}

問題是我創建了一個存儲這些結果的數組,但是我沒有在方法getHeatingTime1()看到Results[1]的值,因為它給我一個零作為我的加熱時間和打印行。 我最好如何在代碼中表示這樣的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為零。 因此需要將它們存儲在一個數組中並從那里訪問它們。 這是解決這個問題的最佳方法嗎? 還有什么其他選擇不涉及創建數組?

要存儲在數組中,您需要提供存儲值的數組索引

Results[0] = getDiff();

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

也,

  • 數組從索引0開始
  • 嘗試將值作為參數傳遞給getDiff方法

通過做結果[1]你浪費了一個空間...所以從0開始

如果你像這樣重寫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;
}

然后在計算中使用它 - 你應該在路上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM