2016-11-14 23 views
0

因此,我目前正在編寫一個程序,使用用戶輸入初始溫度的對象,然後程序必須將其計算爲攝氏溫度,這只是用戶輸入,然後是華氏溫度,然後開爾文。該類還有一個構造函數,它接受作爲雙重參數提供的初始溫度。如果此參數爲< -273.15,請將其設置爲-273.15。我以爲我在正確的軌道上,但是當我編譯它時,它沒有做我想要的,有關如何修復它的任何提示?使用java中的對象進行溫度轉換

利用該代碼,輸出給我

請輸入初始溫度: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

在得到'initialTemperature'的值之前,你不得不重新分配'celsius','fahrenheit'和'kelvin'。 –

回答

1

你知道temperature值之前,您要分配的celsius值,fahrenheitkelvin。你希望你的測試看起來更像這個

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溫度設定以後的動作,現在完成了。

+0

好吧,所以我做到了,但它給了我一個錯誤,當我把temp.setC(臨時);所以相反,我把temp.setC(initialTemperature);它的工作....但是當用戶輸入一個小於-273.15的數字時,它不會將其設置爲-273.15 ....關於如何修復該部分的任何建議? – Angie

+0

@Angie你可以將它編程到'setC'中。另外,感謝您指出錯誤。我會解決它。 –