public class Temperature { private double value = 0; private char unit = 'K'; public Temperature(double value, char unit) { this.value = value; if ((unit == 'k') || (unit == 'K')) this.unit = 'K'; else if ((unit == 'c') || (unit == 'C')) this.unit = 'C'; else if ((unit == 'f') || (unit == 'F')) this.unit = 'F'; else this.unit = 'I'; } public String toString() { if (unit != 'I') return value + " " + unit; else return "invalid temperature"; } public Temperature toCelsius() { if (unit == 'C') return new Temperature(value, unit); else if (unit == 'K') return new Temperature(value - 273, 'C'); else if (unit == 'F') return new Temperature( 5.0/9.0*(value - 32.0), 'C'); else return new Temperature(value, 'I'); } public Temperature toFahrenheit() { if (unit == 'C') return new Temperature(9.0/5.0*value + 32.0, 'F'); else if (unit == 'K') return new Temperature(9.0/5.0*(value-273) + 32.0, 'F'); else if (unit == 'F') return new Temperature(value, unit); else return new Temperature(value, 'I'); } public Temperature toKelvin() { if (unit == 'C') return new Temperature(value + 273, 'K'); else if (unit == 'K') return new Temperature(value, unit); else if (unit == 'F') return new Temperature( 5.0/9.0*(value - 32.0) + 273, 'K'); else return new Temperature(value, 'I'); } }