Senin, 27 Februari 2017

Chapter 8 Classes and Objects

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:

Tidak ada komentar:

Posting Komentar