Senin, 06 Maret 2017

8.7-8.13

8.8 Composition

Class Date
  // 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 toS  

Class Employee
 // Fig. 8.8: Employee.java  
  // Employee class with references to other objects.  
 public class Employee  
 {  
 private String firstName;  
 private String lastName;  
  // 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  

Class EmployeeTest
 // 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 );  
  } // end main  
  } // end class EmployeeTesst  

8.9 Enumerations
 // Fig. 8.10: Book.java  
  // Declaring an enum type with constructor and explicit instance fields  
  // and accessors for these fields  
 public enum Book  
  {  
 // instance fields  
  private final String title; // book title  
  private final String copyrightYear; // copyright year  
 Fig. 8.10 | Declaring an enum type with constructor and explicit instance fields and accessors  
 for these fields. (Part 1 of 2.)  
 // 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" );  
  // 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  


 // 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 ( )  
  System.out.printf( "%-10s%-45s%s\n", book,  
  , );  
  System.out.println( "\nDisplay a range of enum constants:\n" );  
  // print first four books  
  for ( Book book : )  
  System.out.printf( "%-10s%-45s%s\n", book,  
  , );  
  } // end main  
  } // end class EnumTest  

Tidak ada komentar:

Posting Komentar