ini adalah hasilnnya :
**
* Time1.java
* Time1 class declaration maintains the time in 24-hour format.
*
* @Ari Setyaji
* @28 February 2017
*/
public class Time1
{
private int hour; // 0 - 23
private int minute; // 0 - 59
private int second; // 0 - 59
// set a new time value using universal time; throw an
// exception if the hour, minute or second is invalid.
public void setTime (int h, int m, int s)
{
// validate hour, minute and second
if ((h >= 0 && h < 24) && ( m >= 0 && m < 60) && (s >= 0 && s < 60))
{
hour = h;
minute = m;
second = s;
} // end if
else
{
throw new IllegalArgumentException
("hour, minute and/or second was out of range");
}
} // end method setTime
// convert to String in universal-time format (HH:MM:SS)
public String toUniversalString()
{
return String.format ("%02d:%02d:%02d", hour, minute, second);
} // end method toUniversalString
// convert to String in standard-time format (H:MM:SS AM or PM)
public String toString()
{
return String.format ("%d:%02d:%02d %s",
(( hour == 0 || hour == 12 ) ? 12 : hour % 12),
minute, second, (hour < 12 ? "AM" : "PM"));
} // end method toString
} // end class Time1
/**
* Time1Test.java
*
* Ari setyaji
* 28 February 2017
*/
public class Time1Test
{
public static void main (String[] args)
{
// create and initialize a Time1 object
Time1 time = new Time1(); // invokes Time1 constructor
// output string representations of the time
System.out.print ("The initial universal time is: ");
System.out.println (time.toUniversalString());
System.out.print ("The initial standard time is: ");
System.out.println (time.toString());
System.out.println(); // output a blank line
// change time and output updated time
time.setTime (13, 27, 6);
System.out.print ("Universal time after setTime is: ");
System.out.println (time.toUniversalString());
System.out.print ("Standard time after setTime is: ");
System.out.println (time.toString());
System.out.println(); // output a blank line
// attempt to set time with invalid values
try
{
time.setTime (99, 99, 99); // all values out of range
} // end try
catch (IllegalArgumentException e)
{
System.out.printf ("Exception: %s\n\n", e.getMessage());
} // end catch
// display time after attempt to set invalid values
System.out.println ("After attempting invalid settings:" );
System.out.print ("Universal time: ");
System.out.println (time.toUniversalString());
System.out.print ("Standard time: ");
System.out.println (time.toString());
} // end main
} // end class Time1Test
Hasil output adalah :
The initial universal time is: 00:00:00
The initial standard time is: 12:00:00 AM
Universal time after setTime is: 13:27:06
Standard time after setTime is: 1:27:06 PM
Exception: hour, minute and/or second was out of range
After attempting invalid settings:
Universal time: 13:27:06
Standard time: 1:27:06 PM
/**
* ThisTest.java
* this used implicitly and explicitly to refer to members of an object.
*
* Ari Setyaji
* 28 February 2017
*/
public class ThisTest
{
public static void main (String[] args)
{
SimpleTime time = new SimpleTime (15, 30, 19);
System.out.println (time.buildString());
} // end main
} // end class ThisTest
// class SimpleTime demonstrates the "this" reference
class SimpleTime
{
private int hour; // 0 - 23
private int minute; // 0 - 59
private int second; // 0 - 59
// if the constructor uses parameter names identical to
// instance variable names the "this" reference is
// required to distinguish between the names
public SimpleTime (int hour, int minute, int second)
{
this.hour = hour; // set "this" object's hour
this.minute = minute; // set "this" object's minute
this.second = second; // set "this" object's second
} // end SimpleTime constructor
// use explicit and implicit "this" to call toUniversalString
public String buildString()
{
return String.format ("%24s: %s\n%24s: %s",
"this.toUniversalString()", this.toUniversalString(),
"toUniversalString()", toUniversalString());
} // end method buildString
// convert to String in universal-time format (HH:MM:SS)
public String toUniversalString()
{
// "this" is not required here to access instance variables,
// because method does not have local variables with same
// names as instance variables
return String.format ("%02d:%02d:%02d",
this.hour, this.minute, this.second);
} // end method toUniversalString
} // end class SimpleTime
Hasil output adalah :
this.toUniversalString(): 15:30:19
toUniversalString(): 15:30:19
/**
* Time2.java
* Time2 class declaration with overloaded constructors.
*
* Ari setyaji
* 28 February 2017
*/
public 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 zer
public Time2()
{
this (0, 0, 0); // invoke Time2 constructor with three arguments
} // end Time2 no-argument constructor
// Time2 constructor: hour supplied, minute and second defaulted to 0
public Time2 (int h)
{
this (h, 0, 0); // invoke Time2 constructor with three arguments
} // end Time2 one-argument constructor
// Time2 constructor: hour and minute supplied, second defaulted to 0
public Time2 (int h, int m)
{
this (h, m, 0); // invoke Time2 constructor with three arguments
} // end Time2 two-argument constructor
// Time2 constructor: hour, minute and second supplied
public Time2 (int h, int m, int s)
{
setTime (h, m, s); // invoke setTime to validate time
} // end Time2 three-argument constructor
// Time2 constructor: another Time2 object supplied
public Time2 (Time2 time)
{
// invoke Time2 three-argument constructor
this (time.getHour(), time.getMinute(), time.getSecond());
} // end Time2 constructor with a Time2 object argument
// Set Methods
// Set a new time value using universal time;
// validate the data
public void setTime (int h, int m, int s)
{
setHour (h); // set the hour
setMinute (m); // set the minute
setSecond (s); // set the second
} // end method setTime
// validate and set hour
public void setHour (int h)
{
if (h >= 0 && h < 24)
hour = h;
else
throw new IllegalArgumentException ("hour must be 0 - 23");
} // end method setHour
// validate and set minute
public void setMinute (int m)
{
if (m >= 0 && m < 60)
minute = m;
else
throw new IllegalArgumentException ("minute must be 0 - 59");
} // end method setMinute
// validate and set second
public void setSecond (int s)
{
if (s >= 0 && s < 60)
second = ((s >= 0 && s < 60) ? s : 0);
else
throw new IllegalArgumentException ("second must be 0 - 59");
} // end method setSecond
// Get Methods
// get hour value
public int getHour()
{
return hour;
} // end method getHour
// get minute value
public int getMinute()
{
return minute;
} // end method getMinute
// get second value
public int getSecond()
{
return second;
} // end method getSecond
// convert to String in universal-time format (HH:MM:SS)
public String toUniversalString()
{
return String.format ("%02d:%02d:%02d", getHour(), getMinute(), getSecond());
} // end method toUniversalString
// convert to String in standard-time format (H:MM:SS AM or PM)
public String toString()
{
return String.format ("%d:%02d:%02d %s",
((getHour() == 0 || getHour() == 12) ? 12 : getHour() % 12),
getMinute(), getSecond(), (getHour() < 12 ? "AM" : "PM"));
} // end method toString
} // end class Time2
/**
* Time2Test.java
* Overloaded constructors used to initialize Time2 objects.
*
* Ari Setyaji
* 28 February 2017
*/
public class Time2Test
{
public static void main (String[] args)
{
Time2 t1 = new Time2(); // 00:00:00
Time2 t2 = new Time2(2); // 02:00:00
Time2 t3 = new Time2(21, 34); // 21:34:00
Time2 t4 = new Time2(12, 25, 42); // 12:25:42
Time2 t5 = new Time2(t4); // 12:25:42
System.out.println ("Constructed with:");
System.out.println ("t1: all arguments defaulted");
System.out.printf (" %s\n", t1.toUniversalString());
System.out.printf (" %s\n", t1.toString());
System.out.println ("t2: hour specified; minute and second defaulted");
System.out.printf (" %s\n", t2.toUniversalString());
System.out.printf (" %s\n", t2.toString());
System.out.println ("t3: hour and minute specified; second defaulted");
System.out.printf (" %s\n", t3.toUniversalString());
System.out.printf (" %s\n", t3.toString());
System.out.println ("t4: hour, minute and second specified");
System.out.printf (" %s\n", t4.toUniversalString());
System.out.printf (" %s\n", t4.toString());
System.out.println ("t5: Time2 object t4 specified");
System.out.printf (" %s\n", t5.toUniversalString());
System.out.printf (" %s\n", t5.toString());
// attempt to initialize t6 with invalid values
try
{
Time2 t6 = new Time2 (27,74,99); // invalid value
} // end try
catch (IllegalArgumentException e)
{
System.out.printf ("\nException while initializing t6: %s\n", e.getMessage());
} // end catch
} // end main
} // end class Time2Test
Hasil output adalah :
Constructed with:
t1: all arguments defaulted
00:00:00
12:00:00 AM
t2: hour specified; minute and second defaulted
02:00:00
2:00:00 AM
t3: hour and minute specified; second defaulted
21:34:00
9:34:00 PM
t4: hour, minute and second specified
12:25:42
12:25:42 PM
t5: Time2 object t4 specified
12:25:42
12:25:42 PM
Exception while initializing t6: hour must be 0-23