/**
An alarm clock should include a time to sound the alarm as well as methods
to set the alarm.
*/
public class AlarmClock extends Clock
{
public int alarmHour;
public int alarmMinute;
public int alarmSecond;
//Constructors
public AlarmClock()
{
super();
alarmHour = 0;
alarmMinute = 0;
alarmSecond = 0;
}
public AlarmClock(int theHour, int theMinute, int theSecond, int alarmH, int alarmM, int alarmS)
{
super(theHour, theMinute, theSecond);
setAlarmHour(alarmH);
setAlarmMinute(alarmM);
setAlarmSecond(alarmS);
}
//Accessors
public void setAlarmHour(int alarmH)
{
if((alarmH >= 0) && (alarmH <= 24))
alarmHour = alarmH;
else
System.out.println("Fatal error: invalid alarm hour");
}
public void setAlarmMinute(int alarmM)
{
if((alarmM >= 0) && (alarmM <= 59))
alarmMinute = alarmM;
else
System.out.println("Fatal error: invalid alarm minute");
}
public void setAlarmSecond(int alarmS)
{
if((alarmS >= 0) && (alarmS <= 59))
alarmSecond = alarmS;
else
System.out.println("Fatal error: invalid alarm second");
}
//Mutators
public int getAlarmHour()
{
return alarmHour;
}
public int getAlarmMinute()
{
return alarmMinute;
}
public int getAlarmSecond()
{
return alarmSecond;
}
public String getCurrentAlarmTime()
{
return "The alarm is set to " + alarmHour + ":" + alarmMinute + ":" + alarmSecond;
}
//Facilitators
public String toString()
{
return "The current time is " + getHour() + ":" + getMinute() + ":" +
getSecond() + "\\nThe alarm is set to " + getAlarmHour() + ":" +
getAlarmMinute() + ":" + getAlarmSecond();
}
public boolean equals(Object o)
{
if(o == null)
return false;
else if(getClass() != o.getClass())
return false;
else
{
AlarmClock otherClock = (AlarmClock) o;
return((getHour() == otherClock.getHour()) && (getMinute() == otherClock.getMinute())
&& (getSecond() == otherClock.getSecond()) && (alarmHour == otherClock.alarmHour)
&& (alarmMinute == otherClock.alarmMinute) && (alarmSecond == otherClock.alarmSecond));
}
}
}