所以我目前正在使用用户输入初始温度的对象编写程序,然后程序必须将其计算为摄氏度,这只是用户输入,然后是华氏度然后是开尔文。该类还有一个构造函数,它接受作为double参数提供的初始温度。如果此参数为< -273.15
,请将其设置为-273.15
。我以为自己走在了正确的轨道上,但是当我编辑它时,它并没有做我想要的,有关如何修复它的任何提示?
使用此代码,输出给了我
请输入初始温度:20
以摄氏度为单位的当前温度为:0.0
华氏温度当前为:32.0
以开尔文为例的当前温度为:273.15
哪个不对......任何提示?
//blueprint
public class TemperatureC{
private double temperatureC;
public TemperatureC(){
if(temperatureC<-273.15){
temperatureC = -273.15;}
else{}
}
public void setC(double c){
temperatureC = c;
}
public double getC(){return temperatureC;}
public double getF(){return (temperatureC * 1.8) + 32;}
public double getK(){return temperatureC + 273.15;}
}
//code
import java.util.Scanner;
public class TemperatureTester{
public static void main(String[] args){
TemperatureC temp = new TemperatureC();
double initialTemperature;
double celsius=temp.getC();
double fahrenheit=temp.getF();
double kelvin=temp.getK();
Scanner keyboard = new Scanner(System.in);
System.out.print("Please enter the initial temperature: ");
initialTemperature = keyboard.nextDouble();
//TemperatureC temp = new TemperatureC();
System.out.println("The current temperature in Celsius is: " + celsius);
System.out.println("The current temperature in Fahrenheit is: "+fahrenheit);
System.out.println("The current temperature in Kelvin is: "+kelvin);
}
}
答案 0 :(得分:1)
在知道celsius
值之前,您要指定fahrenheit
,kelvin
和temperature
的值。您希望您的测试仪看起来更像这样
public static void main(String[] args) {
TemperatureC temp = new TemperatureC();
double initialTemperature;
Scanner keyboard = new Scanner(System.in);
initialTemperature = keyboard.nextDouble();
temp.setC(initialTemperature);
System.out.println("The current temperature in Celsius is: " + temp.getC());
System.out.println("The current temperature in Fahrenheit is: "+temp.getF());
System.out.println("The current temperature in Kelvin is: "+temp.getK());
}
因此,现在在initialTemperature
的温度设定后完成操作。