温度转换器java

时间:2017-10-19 04:21:11

标签: java temperature

我有温度转换器分配。代码已提供,我必须添加内容才能使其正常工作。我的问题是当scale是一个字符串数组时,我将如何返回一个刻度的char。

任何有**代码**的东西都是我写的。

public class Temperature{
**private double temp;
private char scale;**
/** different scale names */
public static String[] scales = {"Celsius", "Fahrenheit", "Kelvin"};
**scales[0] = "C";
scales[1] = "F";
scales[2] = "K";**

public Temperature(){
  **temp = 0.0;
  scale = scales[0];**
}



 /** Initializes a temperature object with given value in Celcius
  *  
  *  If the initial temperature is less than -273.15 then the temperature 
  *  object will be initialized with -273.15C.
   *   
  * @param temp is the initial temperature in Celsius.
  */
public Temperature(double temp){
  **this.temp = temp;
  if(temp < (-273.15)){
    temp = (-273.15);
  }
  scale = scales[0];**
}


 /** Initializes a temperature object with given value using the specified scale
 * <par>
* If the temperature is lower than absolute zero, then set the temperature to
 * absolute zero (in whichever scale is specified).
 * <par>  
 * Examples: new Temperature(12.3, "K")
 *           new Temperature(-90.2, "Celsius")
*
* @param temp is the initial temperature
* @param scale is the scale of initial temperature and must either be 
*        one of the Strings in the <code>scales</code> array, or 
*        the first letter (capitalized) of one of those strings.
*/
public Temperature(double temp, String scale){
  **this.temp = temp;
  if(temp < (-273.15)){
    temp = (-273.15);
  }
  scale = scales[];**
}



/** The output of this getter method must always be the first letter of one
  * of the strings in the <code>scales</code> array, capitalized.
   *  
  * @return the current scale of the object as a single char (the first letter, 
  *         capitalized of one of the strings from <code>scales</code>)
  */
  public char getScale(){
    return 'X';
  }

1 个答案:

答案 0 :(得分:0)

根据您的问题,您的上一个构造函数应如下所示..

public Temperature(double temp,String scale){
    if(scale.equals("C"))
    {
            if(temp<-273.15)
            {
                this.temp=-273.15;
            }
            else
                this.temp=temp;
        }
        else if(scale.equals("F"))
        {
            if(temp<-459.67)
            {
                this.temp=-459.67)
            }
            else
                this.temp=temp;
        }
        else if(scale.equals("K"))
        {
            if(temp<0)
            {
                this.temp=0;
            }
            else
                this.temp=temp;
        }
        this.scale=scale;
    }