我是Java的新手,我正在尝试从其他公共类中调用GET方法。代码过程,但"答案"返回" WinetEmptime $ winechiller@45EE12A7",因为某些原因我无法弄清楚。
我的方法定义中是否存在问题,还是该方法构造函数的问题?感谢帮助!
这是代码:
import java.util.Scanner;
public class WineTempTime {
public static void main(String[] args) {
// code that inputs double wineTemp, preferedTemp, chillTemp here
Winechiller answer = new Winechiller();
answer.getChillingtime(wineTemp, preferedTemp, chillTemp);
System.out.print("It takes " + answer + " minutes for wine to
reach desired temperature.");
}
}
public static class Winechiller {
// constructors
static final double DELTA_MINUTES = 0.1;
static final int TAO = 50;
WineTempTime wineTemp = new WineTempTime();
WineTempTime preferedTemp = new WineTempTime();
WineTempTime chillTemp = new WineTempTime();
double timeCount = 0;
// equation for minutes until reaches temperature
public int getChillingtime(double wineTemp, double preferedTemp, double
chillTemp) {
while (wineTemp > preferedTemp) {
double tempDecrease = ( (wineTemp - chillTemp) / TAO )
* DELTA_MINUTES;
wineTemp -= tempDecrease;
++timeCount; }
timeCount /= 10;
Math.round(timeCount);
int minutes = (int)timeCount;
return minutes;
}
}
}
在您的代码中,您已经打印了answer
直接打印它。
打印为
System.out.print("It takes " + answer.getChillingtime(wineTemp, preferedTemp,
chillTemp) + " minutes for wine to reach desired temperature.");
,您在不存储它的情况下调用了函数getChillingtime()
,因为它返回了整数。因此,您排除了行
answer.getChillingtime(wineTemp, preferedTemp, chillTemp);
在您的程序中,您将answer
打印为answer
是Winechiller
类的对象,因此当您尝试打印answer
时,您将获得答案对象的信息,因为语句
System.out.println(answer);
被转换为形式
System.out.println(answer.toString());
其中 toString()
是对象类的方法,它是所有Java类的超级类。
您应该打印出方法answer.getChillingtime
的结果,而不是answer
。
int minutes = answer.getChillingtime(wineTemp, preferedTemp, chillTemp);
System.out.print("It takes " + minutes + " minutes for wine to reach desired temperature.");