Person.java
1    /* 
2     * Models a person in terms of five properties, first name, last name, month, day and year of birth 
3     */
4    
5    
6    package people;
7    
8    public class Person implements PersonSpecification {
9        private String firstName;
10       private String lastName;
11       private int month;
12       private int day;
13       private int year;
14   
15       public Person(String nameIn, int monthIn, int dayIn, int yearIn){
16           int space = nameIn.indexOf(" ");
17           firstName = nameIn.substring(0, space);
18           lastName = nameIn.substring(space + 1, nameIn.length());
19           month = monthIn;
20           day = dayIn;
21           year = yearIn;
22       }
23   
24       public String toString(){
25           return firstName + " " + lastName + ", born " + month + "/" + day + "/" + year;
26       }
27   
28       @Override
29       public String firstName() {
30           return firstName;
31       }
32   
33       @Override
34       public String lastName() {
35           return lastName;
36       }
37   
38       @Override
39       public int month() {
40           return month;
41       }
42   
43       @Override
44       public int day() {
45           return day;
46       }
47   
48       @Override
49       public int year() {
50           return year;
51       }
52   
53       @Override
54       public String initials() {
55           char first = firstName.charAt(0);
56           char last = lastName.charAt(0);
57   
58           return String.valueOf(first + last);
59       }
60   
61       @Override
62       public boolean isBoomer() {
63           return year >= 1946 & year <= 1964;
64       }
65   }
66