Complete the provided Temperature class You will add any att
Solution
Hi, Please find my program.
Please let me know in case of any issue:
public class Temperature {
private String scale; // store scale
private double temperture; // store temperature
// constructor
public Temperature(double temperature){
this.temperture = temperature;
scale = \"C\"; // by default scale
}
public void setScale(String s){
if(s.equalsIgnoreCase(\"Kelvin\")){
if(scale.equalsIgnoreCase(\"C\"))
convertCtoK();
else if(scale.equalsIgnoreCase(\"F\"))
convertFtoK();
}else if(s.equalsIgnoreCase(\"C\")){
if(scale.equalsIgnoreCase(\"F\"))
convertFtoC();
else if(scale.equalsIgnoreCase(\"Kelvin\"))
convertKtoC();
}else if(s.equalsIgnoreCase(\"F\")){
if(scale.equalsIgnoreCase(\"C\"))
convertCtoF();
else if(scale.equalsIgnoreCase(\"Kelvin\"))
convertKtoF();
}
}
// helpers methods
private void convertCtoK(){
temperture = temperture + 273.15;
scale = \"Kelvin\";
}
private void convertFtoK(){
temperture = (5.0/9.0)*(temperture-32) +273;
scale = \"Kelvin\";
}
private void convertFtoC(){
temperture = (temperture - 32)*5.0/9.0;
scale = \"C\";
}
private void convertKtoC(){
temperture = temperture - 273.15;
scale = \"C\";
}
private void convertCtoF(){
temperture = (9.0/5.0)*temperture + 32;
scale = \"F\";
}
private void convertKtoF(){
temperture = temperture * 9.0/5.0 - 459.67;
scale = \"F\";
}
public double getTemp(){
return temperture;
}
public String getScale(){
return scale;
}
@Override
public String toString() {
String s = \"\";
if(scale.equalsIgnoreCase(\"F\"))
s = \"F\";
else if(scale.equalsIgnoreCase(\"C\"))
s = \"C\";
return temperture+s;
}
public static void main(String[] args) {
Temperature t = new Temperature(10.1);
System.out.println(t);
t.setScale(\"F\");
System.out.println(t);
t.setScale(\"Kelvin\");
System.out.println(t.getTemp());
}
}
/*
Sample run:
10.1C
50.18F
283.1
*/



