Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

| my MyGeorgiaSouthern Ur x f18hw2 mansipandya xC Implement The Athlete, s x > G

ID: 3746934 • Letter: #

Question

| my MyGeorgiaSouthern Ur x f18hw2 mansipandya xC Implement The Athlete, s x > GitHub. Inc.(USI https://github.com/GeorgiaSouthernCSCI 1302/f18hw2-mansipandya4/blob/master/A2 Diag.png Athlete dob: java.time LocalDate name String gender. Char sAPro: Boolean Athlete(String[O 1]. Integer l teger Integer) getLeveK). String(0 1] getisAPro(): Boolean setlsAPro(Boolean) toString() String(0 1] getName0 String[O 1] getGender() String[O 11 getDob() java time LocalDatel0 11 Swimmer Golfer teamName: String handicap. Integer Golfer(String[0.1]. Integer Integer, Integer) events. assignment-Swimmer.Event[] getLevel() String[0.1] setEvent(Event ) Swimmer(String[O 1]. Integer Integer Integer) getLevel) String0 1] toString0. String[0.1] getHandicap) Integer gefTeamName() String[0.1] equals(Golfer(O 1D-Boolean setTeamName(String[O 11) toString() String[0 1] equals(Swimmert0 11) Boolean 3:43 PM Type here to search 9/14/2018 3

Explanation / Answer

import java.time.LocalDate; import java.time.Period; import java.util.Arrays; public abstract class Athlete { private LocalDate dob; private String name; private char gender; private boolean isAPro; public Athlete(LocalDate dob, String name, char gender, boolean isAPro) { this.dob = dob; this.name = name; this.gender = gender; this.isAPro = isAPro; } public LocalDate getDob() { return dob; } public String getAge() { LocalDate dateTo = LocalDate.now(); Period intervalPeriod = Period.between(dob, dateTo); return intervalPeriod.toString(); } public String getName() { return name; } public String getGender() { if(gender == 'M' || gender == 'm') { return "male"; } if(gender == 'F' || gender == 'f') { return "female"; } return null; } public void setGender(char gender) { if(gender != 'm' && gender != 'M' && gender != 'F' && gender != 'f') { return; } this.gender = gender; } public boolean getIsAPro() { return isAPro; } public void setIsAPro(boolean isAPro) { this.isAPro = isAPro; } public abstract String toString(); public abstract String getLevel(); } class Swimmer extends Athlete { private String teamName; enum Event { EVENT1, EVENT2; }; private Event events[]; public Swimmer(LocalDate dob, String name, char gender, boolean isAPro) { super(dob, name, gender, isAPro); } @Override public String toString() { return getName() + " is a swimmer for team: " + getTeamName() + "in the following events: " + Arrays.toString(events) + getAge(); } @Override public String getLevel() { if(super.getIsAPro()) { return "professional swimmer"; } else { return "amateur swimmer"; } } public String getTeamName() { return teamName; } public void setTeamName(String teamName) { this.teamName = teamName; } void setEvent(Event events[]) { this.events = events; } void setEvent(Event event) { this.events = new Event[1]; events[0] = event; } public boolean equals(Swimmer s) { return s.getDob().equals(this.getDob()) && s.getName().equals(getName()); } } class Golfer extends Athlete { private int handicap; public Golfer(LocalDate dob, String name, char gender, boolean isAPro) { super(dob, name, gender, isAPro); } @Override public String toString() { return getName() + " is a handicap of " + getAge() + " with handicap value " + handicap; } @Override public String getLevel() { if(super.getIsAPro()) { return "professional golfer"; } else { return "amateur golfer"; } } public boolean equals(Golfer s) { return (s.handicap == this.handicap) && s.getName().equals(getName()); } }