public class date
{
private int month;
private int day;
private int year;
private static final int[] daysPermonth =
{0,31,28,31,30,31,30,31,31,30,31,30,31};
public date(int theMonth, int theDay, int theYear)
{
month = checkMonth(theMonth);
year = theYear;
day = checkDay(theDay);
System.out.printf(
"Date object constructor for date %s\n", this);
}
private int checkMonth( int testMonth)
{
if( testMonth > 0 && testMonth <= 12)
return testMonth;
else
throw new IllegalArgumentException("month must be 1-12");
}
private int checkDay(int testDay)
{
if(testDay > 0 && testDay <= daysPermonth[month])
return testDay;
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");
}
public String toString()
{
return String.format("%d%d%d",month,day,year);
}
}
8.8
public class Employee
{
private String firstName;
private String lastName;
private date birthDate;
private date hireDate;
public Employee( String first,String last, date dateOfBirth, date dateOfHire)
{
firstName = first;
lastName = last;
birthDate = dateOfBirth;
hireDate = dateOfHire;
}
public String toString()
{ return String.format("%s, %s Hired: %s Birthday: %s",
lastName,firstName,hireDate,birthDate);
}
}
8.9
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);
}
}
8.10
public enum Book
{
JHTP("Java How to Program","2012"),
CHTP("C how to Program","2007"),
IW3HTP("Internet & World Wide Wb How to Program","2008"),
CPPHTP("C++ How to Program","2012"),
VBHTP("Visual Basic 2010 How tto Program","2011"),
CSHARPHTP("Visual c# 2010 How to Program","2011");
private final String title;
private final String copyrightYear;
Book(String bookTitle, String year)
{
title = bookTitle;
copyrightYear = year;
}
public String getTitle()
{
return title;
}
public String getCopyrightYear()
{
return copyrightYear;
}
}
8.11
import java.util.EnumSet;
public class EnumTest
{
public static void main(String[] args)
{
System.out.println("All books:\n");
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");
for(Book book : EnumSet.range(Book.JHTP,Book.CPPHTP))
System.out.printf("%-10s%-45s%s\n",book,book.getTitle(),book.getCopyrightYear());
}
}
8.12
public class Employee
{
private String firstName;
private String lastName;
private static int count = 0;
public Employee(String first, String last)
{
firstName = first;
lastName = last;
++count;
System.out.printf("Employee constructor: %s %s; count = %d\n",
firstName,lastName, count);
}
public String getFirstName()
{
return firstName;
}
public String getLastName()
{
return lastName;
}
public static int getCount()
{
return count;
}
}
8.13
public class EmployeeTest
{
public static void main(String[]args)
{
System.out.printf("Employees before instantiation: %d\n",
Employee.getCount());
Employee e1 = new Employee("Susan","Baker");
Employee e2 = new Employee ("Bob","Blue");
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());
System.out.printf("\nEmployee 1: %s %s\nEmployee 2: %s %s\n",
e1.getFirstName(), e1.getLastName(),
e2.getFirstName(), e2.getLastName());
e1 = null;
e2 = null;
}
}
Tidak ada komentar:
Posting Komentar