-2

I have a temperature converter assignment. The code was provided and I have to add stuff to it to make it work. The question I have would be how would I return a char for scale when scales is a string array.

Anything that has ** code ** is what I have written.

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';
  }
S.Okita
  • 1
  • 1

1 Answers1

0

Your last constructor should look like below as per your question..

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;
    }
Shiv Kumar
  • 1,034
  • 1
  • 9
  • 21