Person.java
1    /* 
2        This class will model a person in terms of their 
3        first name, last name, month, day, and year of birth 
4     */
5    
6    package people;
7    
8    public class Person implements PersonSpecification{
9    
10       private String firstName;
11       private String lastName;
12       private int month;
13       private int day;
14       private int year;
15   
16       //Constructor
17       public Person(String name, int month, int day, int year) {
18           //Extract the first and last name from the name parameter
19           int spaceIndex = name.indexOf(" ");
20           firstName = name.substring(0,spaceIndex);
21           lastName = name.substring(spaceIndex + 1);
22   
23           this.month = month;
24           this.day = day;
25           this.year = year;
26       }
27   
28       //Method
29       public String toString() {
30           String representation = firstName + " " + lastName + "," + " born " + month + "/" + day + "/" + year;
31           return representation;
32       }
33   
34       @Override
35       public String firstName() {
36           return firstName;
37       }
38   
39       @Override
40       public String lastName() {
41           return lastName;
42       }
43   
44       @Override
45       public int month() {
46           return month;
47       }
48   
49       @Override
50       public int day() {
51           return day;
52       }
53   
54       @Override
55       public int year() {
56           return year;
57       }
58   
59       @Override
60       public String initials() {
61          String firstNameInitial = firstName.substring(0, 1);
62          int spaceIndex = lastName.indexOf(" ");
63          String lastNameInitial = lastName.substring(spaceIndex + 1, spaceIndex + 2);
64          String initials = firstNameInitial + lastNameInitial;
65          return initials;
66       }
67   
68       @Override
69       public boolean isBoomer() {
70           if (year > 1946 & year < 1964) {
71               return true;
72           }
73           return false;
74       }
75   }
76