//Fig. 8.1: Time1java  
 //Time1 class declaration maintains the time in 24-hour format.  
 public class Time1  
 {  
   int hour;  
   int minute;  
   int second;  
   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/our second was out of range");  
   }  
   public String toUniversalString()  
   {  
     return String.format("%02d:02d:%02d", hour,minute,second);  
   }  
   public String toString()  
   {  
     return String.format("%d:%d02:%d02 %s",  
       ( ( hour == 0 || hour == 12 ) ? 12 : hour % 12 ),  
       minute, second, (hour < 12 ? "AM" : "PM" ) ) ;  
     }  
   }  
// Fig.8.2: Time1Test.java  
 // Time1 object used in a application.  
 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 : 
// Fig. 8.3: MemberAccsessTest.java  
 // Private members of class Time1 are not accessible.  
 public class MemberAccsessTest  
 {  
   public static void main(String[] args)  
   {  
     Time1 time = new Time1();  
     time.hour = 7;   
     time.minute = 15;   
     time.second = 30;  
   }  
 }  
// Fig. 8.4: ThisTest.java  
 // this used implicity and explicitly to refer   
 to members of an object.  
 public class ThisTest  
 {  
   public static void main( String[] args )  
   {  
     SimpleTime time = new SimpleTime( 15, 30, 19);  
     System.out.println( time.buildString() );  
   }  
 }  
 class SimpleTime  
 {  
   private int hour;  
   private int minute;  
   private int second;  
   public SimpleTime( int hour, int minute, int second)  
   {  
     this.hour = hour;  
     this.minute = minute;  
     this.second = second;  
   }  
   public String buildString()  
   {  
     return String.format( "%24s: %s\n%24s: %s",  
       "this.toUniversalString()",this.toUniversalString(),  
       "toUniversalString()",toUniversalString() );  
   }  
   public String toUniversalString()  
   {  
     return String.format("%02d:%02d:%02d",  
       this.hour, this.minute, this.second );  
   }  
 }  
Output : 
// Fig. 8.5: Time2.java  
 //Time2 class delcaration with overloaded constructions.  
 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" ) );  
   }  
 }
// Fig. 8.6: Time2Test.java
 // Overloaded constructors used to initialize Time2 object.  
   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 argument 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 : 

Komentar

Postingan populer dari blog ini

Rangkuman Buku "Sistem Analysis and Design

Life as a Software and Engineer

KALKULATOR SEDERHANA