[英]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]);
也,
通過做結果[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.