-
** -
* Time1.java
-
* Time1 class declaration maintains the time in 24–hour format.
-
*
-
* @Benito Danneswara
-
* @26 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
-
*
-
* Benito Dannes
-
* 26 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
Output yang diberikan adalah seperti berikut:
-
/**
-
* ThisTest.java
-
* this used implicitly and explicitly to refer to members of an object.
-
*
-
* Benito Dannes
-
* 26 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
Outputnya:
-
/**
-
* Time2.java
-
* Time2 class declaration with overloaded constructors.
-
*
-
* Benito Danneswara
-
* 26 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.
-
*
-
* Benito Danneswara
-
* 26 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
Berikut outputnya: