8.1
source code:
/**
* Program Kelas Time1
* Deklarasi kelas Time1 mengelola waktu dalam format 24 jam
* Nama file : Time1.java
*/
public class Time1
{
private int hour;
private int minute;
private int second;
//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)
{
if ( (h >= 0 && h < 24) && (m >= 0 && m < 60) && (s >= 0 && s < 60))
{
hour = h;
minute = m;
second = s;
}
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 standart-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
}
8.2
source code:
/**
* Program Kelas Time1Test
* Objek Time1 digunakan dalam aplikasi
* nama file : Time1Test.java
*/
public class Time1Test
{
public static void main( String[] args )
{
Time1 time = new Time1();
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();
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();
try
{
time.setTime( 99, 99 , 99 );
}
catch ( IllegalArgumentException e )
{
System.out.printf( "Exception: %s\n\n", e.getMessage() );
}
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() );
}
}
Output:
8.3
source code:
/**
* Program Kelas MemberAccessTest
* Anggota kelas private Time1 tidak dapat diakses
* Nama file : MemberAccessTest.java
*/
public class MemberAccessTest
{
public static void main(String[] args)
{
Time1 time = new Time1();
time.hour = 7; //error: has private access
time.minute = 15; //error: has private access
time.second = 30; //error: has private access
}
}
8.4
source code:
public class Time1Test
{
public static void main( String[] args )
{
Time1 time = new Time1();
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();
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();
try
{
time.setTime( 99, 99 , 99 );
}
catch ( IllegalArgumentException e )
{
System.out.printf( "Exception: %s\n\n", e.getMessage() );
}
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() );
}
}
Output:
8.5
source code:
/**
* Program Kelas Time2
* Deklarasi kelas Time2 dengan konstuktor overload
* Nama file : Time2.java
*/
public class Time2
{
private int hour;
private int minute;
private int second;
public Time2()
{
this( 0, 0, 0 );
}
public Time2( int h )
{
this( h, 0, 0 );
}
public Time2( int h, int m )
{
this( h, m, 0 );
}
public Time2( int h, int m, int s )
{
setTime( h, m, s );
}
public Time2( Time2 time )
{
this( time.getHour(), time.getMinute(), time.getSecond() );
}
public void setTime( int h, int m, int s )
{
setHour( h );
setMinute( m );
setSecond( s );
}
public void setHour( int h )
{
if ( h >= 0 && h < 24 )
hour = h;
else
throw new IllegalArgumentException( "hour must be 0-23" );
}
public void setMinute( int m )
{
if ( m >= 0 && m < 60 )
minute = m;
else
throw new IllegalArgumentException( "minute must be 0-59" );
}
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" );
}
public int getHour()
{
return hour;
}
public int getMinute()
{
return minute;
}
public int getSecond()
{
return second;
}
public String toUniversalString()
{
return String.format(
"%02d:%02d:%02d", getHour(), getMinute(), getSecond() );
}
public String toString()
{
return String.format( "%d:%02d:%02d %s",
((getHour() == 0 || getHour() == 12) ? 12 : getHour() % 12 ),
getMinute(), getSecond(), ( getHour() < 12 ? "AM" : "PM" ) );
}
}
8.6
source code:
/**
* Program Kelas Time2Test
* Konstruktor overload digunakan untuk menginisialisasi objek Time2
* Nama file : Time2Test.java
*/
public class Time2Test
{
public static void main(String[] args)
{
Time2 t1 = new Time2();
Time2 t2 = new Time2( 2 );
Time2 t3 = new Time2( 21, 34 );
Time2 t4 = new Time2( 12, 25, 42 );
Time2 t5 = new Time2( t4 );
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() );
try
{
Time2 t6 = new Time2( 27, 74, 99 );
}
catch ( IllegalArgumentException e )
{
System.out.printf( "\nException while initializing t6: %s\n",
e.getMessage() );
}
}
}
Output: