解答例 - j2.lesson05.Clock

package j2.lesson05;

/**
 * 時計を表すクラス。
 @author arakawa
 @version $Id: Clock_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
public class Clock {
    
    /** 時刻の内部表現. */
    private int time;
    
    /**
     * 時刻を設定して、インスタンスを生成する。
     @param hour 時
     @param minute 分
     @param second 秒
     */
    public Clock(int hour, int minute, int second) {
        this.time = hour * 3600 + minute * 60 + second;
    }
    
    /**
     * 指定した秒数だけ、この時計を進める。
     @param n 進める秒数
     */
    public void tick(int n) {
        this.time += n;
        this.time %= 86400;
    }
    
    /**
     * 0時0分0秒からの経過秒数を取得する。
     * この値は 86399 以下の値である。
     @return 0時0分0秒からの経過秒数
     */
    protected int getTimeAsSec() {
        return this.time;
    }
    
    /**
     * このインスタンスが表す時刻を表示する。
     * 形式は <code>h時m分s秒</code>
     */
    public final void show() {
        // 現在時刻の 時, 分, 秒 を  h, m, s で表すとして 
        // print h + "時" + m + "分" + s + "秒", 改行
        int h = this.time / 3600;
        int m = (this.time / 6060;
        int s = this.time % 60;
        System.out.println(h + "時" + m + "分" + s + "秒");
    }
}