Senin, 06 Maret 2017

Class Date

Class Date mendeklarasikan variabel month, day, dan year untuk merepresentasikan sebuah tanggal.
Didalam class date akan ada dua waktu (waktu sekarang dan waktu  yang lain) yang dimana waktu yang lain dapat di setting sendiri sesuai kebutuhan.

 1. Date Class Declaration

 // Fig. 8.7: Date.java  
 // Date class declaration.  
 public class Date  
 {  
   private int month; // 1-12  
   private int day; // 1-31 based on month  
   private int year; // any year  
   private static final int[] daysPerMonth = // days in each month  
     { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };  
     // constructor: call checkMonth to confirm proper value for month;  
     // call checkDay to confirm proper value for day  
     public Date( int theMonth, int theDay, int theYear )  
     {  
       month = checkMonth( theMonth ); // validate month  
       year = theYear; // could validate year  
       day = checkDay( theDay ); // validate day  
       System.out.printf(  
       "Date object constructor for date %s\n", this );  
     } // end Date constructor  
     // utility method to confirm proper month value  
     private int checkMonth( int testMonth )  
     {  
       if ( testMonth > 0 && testMonth <= 12 ) // validate month  
         return testMonth;  
       else // month is invalid  
         throw new IllegalArgumentException( "month must be 1-12" );  
         // end method checkMonth  
     }  
     // utility method to confirm proper day value based on month and year  
     private int checkDay( int testDay )  
     {  
       // check if day in range for month  
       if ( testDay > 0 && testDay <= daysPerMonth[ month ] )  
         return testDay;  
       // check for leap year  
       if ( month == 2 && testDay == 29 && ( year % 400 == 0 ||  
         ( year % 4 == 0 && year % 100 != 0 ) ) )  
         return testDay;  
       throw new IllegalArgumentException(  
         "day out-of-range for the specified month and year" );  
     } // end method checkDay  
     // return a String of the form month/day/year  
     public String toString()  
     {  
       return String.format( "%d/%d/%d", month, day, year );  
     } // end method toString  
     } // end class Date  

3. Employee class with references to other objects


 // Fig. 8.8: Employee.java  
 // Employee class with references to other objects.  
 public class Employee  
 {  
   private String firstName;  
   private String lastName;  
   private Date birthDate;  
   private Date hireDate;  
   // constructor to initialize name, birth date and hire date  
   public Employee( String first, String last, Date dateOfBirth,  
     Date dateOfHire )  
     {  
       firstName = first;  
       lastName = last;  
       birthDate = dateOfBirth;  
       hireDate = dateOfHire;  
     } // end Employee constructor  
   // convert Employee to String format  
   public String toString()  
   {  
     return String.format( "%s, %s Hired: %s Birthday: %s",  
     lastName, firstName, hireDate, birthDate );  
   } // end method toString  
   } // end class Employee  

4. Composition demonstration

 

 // Fig. 8.9: EmployeeTest.java  
 // Composition demonstration.  
 public class EmployeeTest  
 {  
   public static void main( String[] args )  
   {  
     Date birth = new Date( 7, 24, 1949 );  
     Date hire = new Date( 3, 12, 1988 );  
     Employee employee = new Employee( "Bob", "Blue", birth, hire );  
     System.out.println( employee );  
   } // end main  
 } // end class EmployeeTest  

Out put:
 Date object constructor for date 7/24/1949  
 Date object constructor for date 3/12/1988  
 Blue, Bob Hired: 3/12/1988 Birthday: 7/24/1949  

5. Declaring an enum type with constructor and explicit in

 // Fig. 8.10: Book.java  
 // Declaring an enum type with constructor and explicit instance fields  
 // and accessors for these fields  
 public enum Book  
 {  
   // declare constants of enum type  
   JHTP( "Java How to Program", "2012" ),  
   CHTP( "C How to Program", "2007" ),  
   IW3HTP( "Internet & World Wide Web How to Program", "2008" ),  
   CPPHTP( "C++ How to Program", "2012" ),  
   VBHTP( "Visual Basic 2010 How to Program", "2011" ),  
   CSHARPHTP( "Visual C# 2010 How to Program", "2011" );  
   // instance fields  
   private final String title; // book title  
   private final String copyrightYear; // copyright year  
   // enum constructor  
   Book( String bookTitle, String year )  
   {  
     title = bookTitle;  
     copyrightYear = year;  
   } // end enum Book constructor  
   // accessor for field title  
   public String getTitle()  
   {  
     return title;  
   } // end method getTitle  
   // accessor for field copyrightYear  
   public String getCopyrightYear()  
   {  
     return copyrightYear;  
   } // end method getCopyrightYear  
 } // end enum Book  

6. Testing enum type Book

 // Fig. 8.11: EnumTest.java  
 // Testing enum type Book.  
 import java.util.EnumSet;  
 public class EnumTest  
 {  
   public static void main( String[] args )  
   {  
     System.out.println( "All books:\n" );  
     // print all books in enum Book  
     for( Book book : Book.values())  
     System.out.printf( "%-10s%-45s%s\n", book,  
     book.getTitle(), book.getCopyrightYear() );  
     System.out.println( "\nDisplay a range of enum constants:\n" );  
     // print first four books  
     for ( Book book : EnumSet.range( Book.JHTP, Book.CPPHTP ) )  
       System.out.printf( "%-10s%-45s%s\n", book,  
       book.getTitle(), book.getCopyrightYear() );  
     } // end main  
  } // end class EnumTest  

Output :
 All books:  
 JHTP Java How to Program 2012  
 CHTP C How to Program 2007  
 IW3HTP Internet & World Wide Web How to Program 2008  
 CPPHTP C++ How to Program 2012  
 VBHTP Visual Basic 2010 How to Program 2011  
 CSHARPHTP Visual C# 2010 How to Program 2011  
 Display a range of enum constants:  
 JHTP Java How to Program 2012  
 CHTP C How to Program 2007  
 IW3HTP Internet & World Wide Web How to Program 2008  
 CPPHTP C++ How to Program 2012  

7. Static variable used to maintain a count of the number of Employee objects in memory

 

 // Fig. 8.12: Employee.java  
 // Static variable used to maintain a count of the number of  
 // Employee objects in memory.  
 public class Employee  
 {  
   private String firstName;  
   private String lastName;  
   private static int count = 0; // number of Employees created  
   // initialize Employee, add 1 to static count and  
   // output String indicating that constructor was called  
   public Employee( String first, String last )  
   {  
     firstName = first;  
     lastName = last;  
     ++count; // increment static count of employees  
     System.out.printf( "Employee constructor: %s %s; count = %d\n",  
       firstName, lastName, count );  
   } // end Employee constructor  
   // get first name  
   public String getFirstName()  
   {  
     return firstName;  
   } // end method getFirstName  
   // get last name  
   public String getLastName()  
   {  
     return lastName;  
   } // end method getLastName  
   // static method to get static count value  
   public static int getCount()  
   {  
     return count;  
   } // end method getCount  
   } // end class Employee  

8. Static member demonstration

 DATA HOSTED WITH ♥ BY PASTEBIN.COM - DOWNLOAD RAW - SEE ORIGINAL  
 // Fig. 8.13: EmployeeTest.java  
 // static member demonstration.  
 public class EmployeeTest  
 {  
   public static void main( String[] args )  
   {  
     // show that count is 0 before creating Employees  
     System.out.printf( "Employees before instantiation: %d\n",  
     Employee.getCount() );  
     // create two Employees; count should be 2  
     Employee e1 = new Employee( "Susan", "Baker" );  
     Employee e2 = new Employee( "Bob", "Blue" );  
     // show that count is 2 after creating two Employees  
     System.out.println( "\nEmployees after instantiation: " );  
     System.out.printf( "via e1.getCount(): %d\n",e1.getCount() );  
     System.out.printf( "via e2.getCount(): %d\n",e2.getCount() );  
     System.out.printf( "via Employee.getCount(): %d\n",  
       Employee.getCount());  
     // get names of Employees  
     System.out.printf( "\nEmployee 1: %s %s\nEmployee 2: %s %s\n",  
       e1.getFirstName(), e1.getLastName(),  
       e2.getFirstName(), e2.getLastName() );  
       // in this example, there is only one reference to each Employee,  
       // so the following two statements indicate that these objects  
       // are eligible for garbage collection  
       e1 = null;  
       e2 = null;  
   }// end main  
   } // end class EmployeeTest  

Output:

 Employees before instantiation: 0  
 Employee constructor: Susan Baker; count = 1  
 Employee constructor: Bob Blue; count = 2  
 Employees after instantiation:  
 via e1.getCount(): 2  
 via e2.getCount(): 2  
 via Employee.getCount(): 2  
 Employee 1: Susan Baker  
 Employee 2: Bob Blue  

Object studi kasus Ticket Machine

Ticket Machine
adalah sebuah mesin sebagai penjualan tiket kereta api yang mengatur proses penjualan dari satu kota ke kota yag lain, di dalam tiket machine ada program dimana progam itu yang mengatur proses harga tiket.

Berikut program (Source code) dari Ticket Machine:

 /**  
  * Write a description of class TicketMachine here.  
  *   
  * Ari Setyaji  
  * Ticket Machine  
  */  
 public class TicketMachine  
 {  
   //The price of a ticket ftr=rom this machin  
   private int price;  
   private int balance;  
   private int total;  
   public TicketMachine(int ticketCost)  
   {  
     price = ticketCost;  
     balance = 0;  
     total = 0;  
   }  
   public int getPrice()  
   {  
     return price ;  
   }  
   public int getBalance()  
   {  
     return balance;  
   }  
   public void insertMoney(int amount)  
   {  
     balance=balance+amount;  
   }  
   public void printTicket()  
   {  
     System.out.println("##################");  
     System.out.println("# The BlueJ Line");  
     System.out.println("# Ticket");  
     System.out.println("# "+price+" cents.");  
     System.out.println("##################");  
     System.out.println();  
     total=total+balance;  
     balance=0;  
   }    
 }  



Ini adalah Program IntMain:

 /**  
  * Write a description of class IntMain here.  
  *   
  * Ari setyaji  
  * Int main  
  */  
 import java.util.Scanner;  
 public class IntMain  
 {  
   public static void main(String args[])  
   {  
     Scanner scan= new Scanner(System.in);  
     int cost,menu, a, n;  
     cost = 50;  
     System.out.println("Masukkan harga tiket \n");  
     cost=scan.nextInt();  
     TicketMachine ticket=new TicketMachine(cost);  
     while (true)  
     {  
     System.out.println("1.Get Price");  
     System.out.println("2. Get Balance");  
     System.out.println("3. Insert Money");  
     System.out.println("4. Print Ticket");  
     menu=scan.nextInt();  
       switch(menu)  
       {  
       case 1:  
       cost=ticket.getPrice();  
       System.out.println(cost);  
       break;  
       case 2:  
       ticket.getBalance();  
       break;  
       case 3:  
       int money=scan.nextInt();  
       ticket.insertMoney(money);   
       break;  
       case 4:  
       ticket.printTicket();   
       break;   
     }  
   }  
 }  
 }