我有温度转换器分配。代码已提供,我必须添加内容才能使其正常工作。我的问题是当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';
}
答案 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;
}