public class Main
{
public static void main(String[] args)
/**
from
* 时代Java公众号 - N o w J a v a . c o m
**/
{
Time2 t1 = new Time2(); // 00:00:00
Time2 t2 = new Time2(2); // 02:00:00
Time2 t3 = new Time2(21, 31); // 21:31:00
Time2 t4 = new Time2(12, 25, 42); // 12:25:42
Time2 t5 = new Time2(t4); // 12:25:42
System.out.println("Constructed with:");
displayTime("t1: all default arguments", t1);
displayTime("t2: hour specified; default minute and second", t2);
displayTime("t3: hour and minute specified; default second", t3);
displayTime("t4: hour, minute and second specified", t4);
displayTime("t5: Time2 object t4 specified", t5);/**来自 n o w j a v a . c o m**/
// attempt to initialize t6 with invalid values
try
{
Time2 t6 = new Time2(27, 74, 99); // invalid values
}
catch (IllegalArgumentException e)
{
System.out.printf("%nException while initializing t6: %s%n",
e.getMessage());
}
}
// displays a Time2 object in 24-hour and 12-hour formats
private static void displayTime(String header, Time2 t)
{
System.out.printf("%s%n %s%n %s%n",
header, t.toUniversalString(), t.toString());
}
}
class Time2
{
private int hour; // 0 - 23
private int minute; // 0 - 59
private int second; // 0 - 59
// Time2 no-argument constructor:
// initializes each instance variable to zero
public Time2()
{
this(0, 0, 0); // invoke constructor with three arguments
}
// Time2 constructor: hour supplied, minute and second defaulted to 0
public Time2(int hour)
{
this(hour, 0, 0); // invoke constructor with three arguments
}
// Time2 constructor: hour and minute supplied, second defaulted to 0
public Time2(int hour, int minute)
{
this(hour, minute, 0); // invoke constructor with three arguments
}
// Time2 constructor: hour, minute and second supplied
public Time2(int hour, int minute, int second)
{
if (hour < 0 || hour >= 24)
throw new IllegalArgumentException("hour must be 0-23");
if (minute < 0 || minute >= 60)
throw new IllegalArgumentException("minute must be 0-59");
if (second < 0 || second >= 60)
throw new IllegalArgumentException("second must be 0-59");
this.hour = hour;
this.minute = minute;
this.second = second;
}
// Time2 constructor: another Time2 object supplied
public Time2(Time2 time)
{
// invoke constructor with three arguments
this(time.getHour(), time.getMinute(), time.getSecond());
}
public void setTime(int hour, int minute, int second)
{
if (hour < 0 || hour >= 24)
throw new IllegalArgumentException("hour must be 0-23");
if (minute < 0 || minute >= 60)
throw new IllegalArgumentException("minute must be 0-59");
if (second < 0 || second >= 60)
throw new IllegalArgumentException("second must be 0-59");
this.hour = hour;
this.minute = minute;
this.second = second;
}
// validate and set hour
public void setHour(int hour)
{
if (hour < 0 || hour >= 24)
throw new IllegalArgumentException("hour must be 0-23");
this.hour = hour;
}
// validate and set minute
public void setMinute(int minute)
{
if (minute < 0 || minute >= 60)
throw new IllegalArgumentException("minute must be 0-59");
this.minute = minute;
}
// validate and set second
public void setSecond(int second)
{
if (second < 0 || second >= 60)
throw new IllegalArgumentException("second must be 0-59");
this.second = second;
}
// Get Methods
// get hour value
public int getHour()
{
/**代码未完, 请加载全部代码(NowJava.com).**/
本文系作者在时代Java发表,未经许可,不得转载。如有侵权,请联系nowjava@qq.com删除。