使用java中的对象进行温度转换

时间:2016-11-14 19:57:18

标签: java

所以我目前正在使用用户输入初始温度的对象编写程序,然后程序必须将其计算为摄氏度,这只是用户输入,然后是华氏度然后是开尔文。该类还有一个构造函数,它接受作为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);    
    }   
}

1 个答案:

答案 0 :(得分:1)

在知道celsius值之前,您要指定fahrenheitkelvintemperature的值。您希望您的测试仪看起来更像这样

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的温度设定后完成操作。