public class CommissionEmployee extends Object { private final String firstName; private final String lastName; private final String socialSecurityNumber; private double grossSales; // gross weekly sales private double commissionRate; // commission percentage } public CommissionEmployee(String firstName, String lastName, String socialSecurityNumber, double grossSales, double commissionRate) { if (grossSales < 0.0) { throw new IllegalArgumentException("Gross sales must be >= 0.0"); } if (commissionRate <= 0.0 || commissionRate >= 1.0) { throw new IllegalArgumentException( "Commission rate must be > 0.0 and < 1.0"); } this.firstName = firstName; this.lastName = lastName; this.socialSecurityNumber = socialSecurityNumber; this.grossSales = grossSales; this.commissionRate = commissionRate; } // return first name public String getFirstName() { return firstName; } // return last name public String getLastName() { return lastName; } // return social security number public String getSocialSecurityNumber() { return socialSecurityNumber; } // set gross sales amount public void setGrossSales(double grossSales) { if (grossSales < 0.0) { throw new IllegalArgumentException("Gross sales must be >= 0.0"); } this.grossSales = grossSales; } // return gross sales amount public double getGrossSales() { return grossSales; } // set commission rate public void setCommissionRate(double commissionRate) { if (commissionRate <= 0.0 || commissionRate >= 1.0) { throw new IllegalArgumentException( "Commission rate must be > 0.0 and < 1.0"); } this.commissionRate = commissionRate; } // return commission rate public double getCommissionRate() { return commissionRate; } // calculate earnings public double earnings() { return commissionRate * grossSales; } // return String representation of CommissionEmployee object @Override // indicates that this method overrides a superclass method public String toString() { return String.format("%s: %s %s%n%s: %s%n%s: %.2f%n%s: %.2f", "commission employee", firstName, lastName, "social security number", socialSecurityNumber, "gross sales", grossSales, "commission rate", commissionRate); } // Fig. 9.5: CommissionEmployeeTest.java // CommissionEmployee class test program. public class CommissionEmployeeTest { public static void main(String[] args) { // instantiate CommissionEmployee object CommissionEmployee employee = new CommissionEmployee( "Sue", "Jones", "222-22-2222", 10000, .06); // get commission employee data System.out.println("Employee information obtained by get methods:"); System.out.printf("%n%s %s%n", "First name is", employee.getFirstName()); System.out.printf("%s %s%n", "Last name is", employee.getLastName()); System.out.printf("%s %s%n", "Social security number is", employee.getSocialSecurityNumber()); System.out.printf("%s %.2f%n", "Gross sales is", employee.getGrossSales()); System.out.printf("%s %.2f%n", "Commission rate is", employee.getCommissionRate()); } } employee.setGrossSales(5000); employee.setCommissionRate(.1); System.out.printf("%n%s:%n%n%s%n", "Updated employee information obtained by toString", employee);