package eecs2030.test3;
/**
* A class that represents temperatures in degrees Celcius or degrees
* Fahrenheit.
*
* @author EECS2030 Fall 2016
*
*/
public class Temperature {
/**
* The abbreviation of Celcius.
*/
public static final String CELCIUS = "C";
/**
* The abbreviation of Fahrenheit
*/
public static final String FAHRENHEIT = "F";
/*
* YOU SHOULD ADD WHATEVER FIELDS YOU REQUIRE BELOW HERE
*/
/**
* Initializes the temperature to 0 degrees Celcius.
*/
public Temperature() {
}
/**
* Initializes the temperature by copying the numeric value and units of
* another temperature.
*
* @param other
* the temperature to copy
*/
public Temperature(Temperature other) {
}
/**
* Initializes the temperature to the given numeric value having the given
* units.
*
* @param temp
* the temperature
* @param units
* the units (Temperature.CELCIUS or
* Temperature.FAHRENHEIT)
* @throws IllegalArgumentException
* if units is not one of
* Temperature.CELCIUS or
* Temperature.FAHRENHEIT
*/
public Temperature(double temp, String units) {
}
/**
* Gets the numeric value of the temperature using the current units. For
* instance, the value of degC is 0.0 and the
* value of degF is 32.0 in the following example:
*
*
* Temperature t = new Temperature(0.0, Temperature.CELCIUS);
* double degC = t.getTemperature();
*
* Temperature u = new Temperature(32.0, Temperature.FAHRENHEIT);
* double degF = u.getTemperature();
*
*
* @return the numeric value of the temperature using the current units
*/
public double getTemperature() {
return 0.0;
}
/**
* Sets the numeric value of the temperature using the current units. For
* instance, the final numeric value of t is 15.0
* degrees Celcius in the example below:
*
*
* Temperature t = new Temperature(0.0, Temperature.CELCIUS);
* t.setTemperature(15.0);
*
*
* @param temp
* the numeric value of the temperature
*/
public final void setTemperature(double temp) {
}
/**
* Gets the units of the temperature.
*
* @return Temperature.CELCIUS if the temperature is in
* Celcius, or Temperature.FAHRENHEIT if the
* temperature is in Fahrenheit.
*/
public String getUnits() {
return "";
}
/**
* Set the units of the temperature. This method has the side effect that
* the numeric value of the temperature changes to reflect the change in
* units. For instance, changing the units of 0 degrees Celcius
* to Fahrenheit causes the value of degF to be
* 32.0 (because 0C is equal to 32F):
*
*
* Temperature t = new Temperature(0, Temperature.CELCIUS);
* t.setUnits(Temperature.FAHRENHEIT);
* double degF = t.getTemperature(); // degF is equal to 32.0
* String units = t.getUnits(); // units is equal to Temperature.FAHRENHEIT
*
*
* @param units
* the units of the temperature (Temperature.CELCIUS
* or Temperature.FAHRENHEIT)
* @throws IllegalArgumentException
* if units is not one of
* Temperature.CELCIUS or
* Temperature.FAHRENHEIT
*
*/
public final void setUnits(String units) {
}
/**
* Converts a value of degrees Fahrenheit to the equivalent value of degrees
* Celcius. The formula to convert degrees Fahrenheit to degrees Celcius is:
*
* * C = (F - 32) × (5 / 9) * *
* where F is degrees Fahrenheit and C is degrees Celcius. * * @param degF * a value of degrees Fahrenheit * @return the equivalent value in degrees Celcius */ public static double toCelcius(double degF) { return 0.0; } /** * Converts a value of degrees Celcius to the equivalent value of degrees * Fahrenheit. The formula to convert degrees Celcius to degrees Fahrenheit * is: * *
* F = C × (9 / 5) + 32 * *
* where C is degrees Celcius and F is degrees Fahrenheit. * * @param degC * a value of degrees Celcius * @return the equivalent value in degrees Fahrenheit */ public static double toFahrenheit(double degC) { return 0.0; } /** * Returns a string made up of the numeric value of the temperature followed * by its units. For example, the Strings * *
* -12.5C
* 73.01234F
*
*
*
* are returned for temperatures of -12.5 degrees Celcius and
* 73.01234 degrees Fahrenheit, respectively.
*
* @return a string representation of the temperature
*/
@Override
public String toString() {
if (this.getUnits().equals(Temperature.CELCIUS)) {
return this.getTemperature() + Temperature.CELCIUS;
} else {
return this.getTemperature() + Temperature.FAHRENHEIT;
}
}
/**
* Compares two temperatures for equality. Two temperatures are considered
* equal if they represent the same temperature expressed in degrees
* Celcius. For instance, the values of eq1 and
* eq2 are true in the following example:
*
*
* Temperature t = new Temperature(0.0, Temperature.CELCIUS);
* Temperature u = new Temperature(32.0, Temperature.FAHRENHEIT);
* boolean eq1 = t.equals(u);
* boolean eq2 = u.equals(t);
*
*
*
* because 32 degrees Fahrenheit is equivalent to
* 0 degrees Celcius, and vice versa.
*/
@Override
public boolean equals(Object obj) {
// 1. you may use the eclipse generated version of equals and hashCode
// 2. you must modify the eclipse generated version of equals to
// satisfy the API stated above
// 3. you may leave or remove the eclipse generated version of hashCode;
// it won't be marked
return false;
}
}