Java Reference
In-Depth Information
Display 5.19
A Person Class
(part 1 of 5)
1 /**
2 Class for a person with a name and dates for birth and death.
3 Class invariant: A Person always has a date of birth, and if the
Person
4 has a date of death, then the date of death is equal to or later than
the
5 date of birth.
6 */
7
public class
Person
8 {
9
private
String name;
10
private
Date born;
11
private
Date died;
//
null
indicates still alive
.
The class
Date
was defined in Display 4.11
and many of the details are repeated in
Display 5.20.
12
public
Person(String initialName, Date birthDate, Date deathDate)
13 {
14
if
(consistent(birthDate, deathDate))
15 {
16 name = initialName;
17 born =
new
Date(birthDate);
18
if
(deathDate ==
null
)
19 died =
null
;
20
else
21 died =
new
Date(deathDate);
22 }
23
else
24 {
25 System.out.println("Inconsistent dates.Aborting.");
26 System.exit(0);
27 }
28 }
We will discuss
Date
and
the significance of these
constructor invocations
later in this chapter in the
subsection entitled “Copy
Constructors.”
29
public
Person(Person original)
30 {
31
if
(original ==
null
)
32 {
33 System.out.println("Fatal error.");
34 System.exit(0);
35 }
Copy constructor.
36 name = original.name;
37 born =
new
Date(original.born);
38
if
(original.died ==
null
)
39 died =
null
;
40
else
41 died =
new
Date(original.died);
42 }
(continued)