Senin, 27 Februari 2017

Classes and Objects #1

8.1 | Time1 class declaration maintains the time in 24-hour format.
/**
 * Write a description of class Time1 here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
public class Time1
{
   private int hour; //0-23
   private int minute; //0-59
   private int second; //0-59
    
   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");
   }
   public String toUniversalString() {
       return String.format("%02d:%02d:%02d", hour, minute, second);
   }
   public String toString() {
       return String.format("%02d:%02d:%02d %s", ((hour==0||hour==12)?12:hour%12), minute, second, (hour<12?"AM":"PM"));
   }    
}

8.2 | Time1 object used in an application.
/**
 * Write a description of class time1test here.
 * 
 * @author Davin Masasih - 5115100113
 * @version 0.1
 */
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());
    }
}


8.3 | Private members of class Time1 are not accessible.
/**
 * Write a description of class MemberAccessTest here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
public class MemberAccessTest
{
   public static void main(String[] args) {
       Time1 time = new Time1();
        
       time.hour = 7;
       time.minute = 15;
       time.second = 30;
   }
}


Change source code in 8.1 into..
/**
 * Write a description of class Time1 here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
public class Time1
{
   public int hour; //0-23
   public int minute; //0-59
   public int second; //0-59
    
   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");
   }
   public String toUniversalString() {
       return String.format("%02d:%02d:%02d", hour, minute, second);
   }
   public String toString() {
       return String.format("%02d:%02d:%02d %s", ((hour==0||hour==12)?12:hour%12), minute, second, (hour<12?"AM":"PM"));
   }    
}

8.4 | This used implicitly and explicitly to refer to members of an object.
/**
 * Write a description of class ThisTest here.
 * 
 * @author Davin Masasih - 5115100113
 * @version 0.1
 */
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.to.UniversalString()", this.toUniversalString(),
        "to.UniversalString()", toUniversalString());
    }
    public String toUniversalString() {
        return String.format("%02d:%02d:%02d", this.hour, this.minute, this.second);
    }
}


8.5 | Time2 class with overloaded constructors.
/**
 * Write a description of class Time2 here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
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("%02d:%02d:%02d %s",
       ((getHour()==0||getHour()==12)?12:getHour()%12), getMinute(), getSecond(),
       (getHour()<12?"AM":"PM"));
   }
}

8.6 | Overloaded constructors used to initialize Time2.
/**
 * Write a description of class Time2Test here.
 * 
 * @author Davin Masasih - 5115100113
 * @version 0.1
 */
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 mnute 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());
       }
   }       
}

Tidak ada komentar:

Posting Komentar

Implementasi Aplikasi Manajemen Surat