1.
Consider the following declaration for a class that will be used to represent points in time. Which of these options correctly implement ββaddMinutes()ββ?
public class Timer
{
private int hours; // number of hours
private int minutes; // 0 <= minutes < 60
void addHours(int addition)
{
hours = hours + addition;
}
void addMinutes(int additionMinutes)
{
// implementation not shown
}
// ... other methods not shown
}
Proposed Implementations:
I. public void addMinutes(int additionMinutes)
{
minutes = minutes + additionMinutes;
}
II. public void addMinutes(int additionMinutes)
{
minutes += additionMinutes;
if (minutes >= 60)
{
hours += (minutes / 60);
minutes = (minutes % 60);
}
}
III. public void addMinutes(int additionMinutes)
{
minutes += additionMinutes;
while(minutes >= 60)
{
hours++;
minutes -= 60;
}
}
IV. public void addMinutes(int additionMinutes)
{
if (additionMinutes + minutes >= 60)
{
minutes = additionMinutes + minutes - 60;
hours += 1;
}
}
- I only
- This implementation of ββaddMinutesββ does not account for values of additionMinutes that push the minute count above 60.
- II only
- Implementation II works, but implementation III also works.
- IV only
- Implementation IV does not work for situations where additionMinutes + minutes does not go above 60.
- II and III
- Correct!
- I, II, and III
- Implementations II and III are correct, but implementation I is not. Implementation I does not account for values of additionMinutes that push the minute count above 60.

