我如何使用在没有调用对象的情况下定义的方法



我是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打印为answerWinechiller类的对象,因此当您尝试打印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.");

相关内容

最新更新