Java Reference
In-Depth Information
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.)