Write a class encapsulating the concept of the weather forecast , assuming that
ID: 3547033 • Letter: W
Question
Write a class encapsulating the concept of the weather forecast, assuming that it has the following attributes: the temperature and the sky conditions, which could be sunny, snowy, cloudy, or rainy. Include a constructor, the accessors and mutators, and methods toString and equals.
Temperature, in Fahrenheit, should be between -50 and +150; the default value is 70, if needed.
The default sky condition is sunny.
Include a method that converts Fahrenheit to Celsius.
Celsius temperature = (Fahrenheit temperature - 32) * 5 / 9.
Also include a method that checks whether the weather attributes are consistent (there are two cases where they are not consistent: when the temperature is below 32 and it is not snowy, and when the temperature is above 100 and it is not sunny).Write a client class to test all the methods in your class.
Explanation / Answer
////Simple java Weather forecast class
public class WeatherForcast
{
//Declare instance variables and set them to initial values
private double temp;
private String skyCondition;
//Overloaded constructor allows client to set values
public WeatherForcast()
{
skyCondition = "sunny";
temp = 70.0;
}
public WeatherForcast(double startTemp, String startSky)
{
temp = startTemp;
setSky(startSky, temp);
}
//Accessor Methods
public double getTemp()
{
return temp;
}
public String getSky()
{
return skyCondition;
}
//Mutator methods
public void setTemp(double startTemp)
{
temp = startTemp;
}
public void setSky(String startSky, double temp)
{
if((temp <= 32.0 && startSky != "snowy") || (temp >= 100.0 && startSky != "sunny"))
{
System.err.println("Conditions are not valid");
}
else
skyCondition = startSky;
}
public double convert()
{
return ((temp - 32) * (5/9));
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.