Java Reference
In-Depth Information
9.4.2 Creating and Using a BasePlusCommissionEmployee Class
We now discuss the second part of our introduction to inheritance by declaring and testing
(a completely new and independent) class BasePlusCommissionEmployee (Fig. 9.6),
which contains a first name, last name, social security number, gross sales amount, com-
mission rate and base salary. Class BasePlusCommissionEmployee 's public services in-
clude a BasePlusCommissionEmployee constructor (lines 15-42) and methods earnings
(lines 111-114) and toString (lines 117-126). Lines 45-108 declare public get and set
methods for the class's private instance variables (declared in lines 7-12) firstName ,
lastName , socialSecurityNumber , grossSales , commissionRate and baseSalary .
These variables and methods encapsulate all the necessary features of a base-salaried com-
mission employee. Note the similarity between this class and class CommissionEmployee
(Fig. 9.4)—in this example, we'll not yet exploit that similarity.
1
// Fig. 9.6: BasePlusCommissionEmployee.java
2
// BasePlusCommissionEmployee class represents an employee who receives
3
// a base salary in addition to commission.
4
5
public class BasePlusCommissionEmployee
6
{
7
private final String firstName;
8
private final String lastName;
9
private final String socialSecurityNumber;
10
private double grossSales; // gross weekly sales
11
private double commissionRate; // commission percentage
12
private double baseSalary; // base salary per week
13
14
// six-argument constructor
15
public BasePlusCommissionEmployee(String firstName, String lastName,
16
String socialSecurityNumber, double grossSales,
17
double commissionRate,
double baseSalary
)
18
{
19
// implicit call to Object's default constructor occurs here
20
21
// if grossSales is invalid throw exception
22
if (grossSales < 0.0 )
23
throw new IllegalArgumentException(
24
"Gross sales must be >= 0.0" );
25
26
// if commissionRate is invalid throw exception
27
if (commissionRate <= 0.0 || commissionRate >= 1.0 )
28
throw new IllegalArgumentException(
29
"Commission rate must be > 0.0 and < 1.0") ;
30
31
// if baseSalary is invalid throw exception
if (baseSalary < 0.0 )
throw new IllegalArgumentException(
"Base salary must be >= 0.0" );
32
33
34
35
Fig. 9.6 | BasePlusCommissionEmployee class represents an employee who receives a base
salary in addition to a commission. (Part 1 of 3.)
 
Search WWH ::




Custom Search