_________________________________________ | Employee{abstract} | |_________________________________________| | # String name | | # String SSNumber | | # Calendar calendar | | # int EmpID | | # String dept | | # int yearHired | | # double totalYearlyWages | |_________________________________________| |< constructor> | | + Employee() | | + Employee(See below) | |< updates> | | + getName() :String | | + getSSNumber() :String | | + setName(String newName) :void | | + setDept(String newDept) :void | |< accessors> | | + getEmpID() :int | | + getYearHired() :int | | + getDept() :String | | + getTotalYearlyWages() :double | | + setDept(String newDept) :void | | + toString() :String | | + abstract ComputeSalary(double):double| |_________________________________________| The input to the constructor is String Name, String SSNumber, int EmpID, String Dept, int YearHired, double TotalYearlyWages The '#' means it is protected. The name and SSNumber are the name and Social Security number of the person. The Calender (which is in the package of java.util.*, is needed to calculate the years of service. I.e., it is used to get the current year. A person is allowed to change their name, e.g., by marriage. Each employee has a EmpID, a dept they belong to, and a year in which they were hired. The default constructor is to assign a special value to name to indicate that no name was given, e.g. "No Name was Given". Each of the constructors will have the line: calender = new GregorianCalendar(); which creates the calender. The other methods are obvious. Note that toString will output on one line the person's name and Social Security number, with a label for each one. On another line it will output the EmpID, dept, and yearHired. It will NOT ouput the TotalYearlyWages. The toString will just give general information. _________________________________ | Staff{abstract} | |_________________________________| | # String position | |_________________________________| | | | + Staff() | | + Staff(See below) | | | | + getPosition() :String | | + setPosition(String) :void | | + toString() :String | |_________________________________| The input to the constructor is String Name, String SSNumber, int EmpID, String Dept, int YearHired, double TotalYearlyWages, String Position _________________________________ | FullTimeStaff | |_________________________________| | # double salary | | # double vacationDays | | # double sickDays | |_________________________________| | | | + FullTimeStaff() | | + FullTimeStaff(see below) | | | | + getSalary() :double | | + setSalary(double) :void | | + useVacationDays(int) :void | | + useSickDays(int) :void | | + computeSalary(double):double | |< accessors> | | + getVacationDays() :double | | + getSickDays() :double | | + String toString() :String | |_________________________________| The input to the constructor is String Name, String SSNumber, int EmpID, String Dept, int YearHired, double TotalYearlyWages, String Position, double Salary, double VacationDays, double SickDays _________________________________ | partTimeStaff | |_________________________________| | + double hourlyRate | |_________________________________| | | | + partTimeStaff() | | + partTimeStaff(see Below) | | | | + getHourlyRate() :double | | + setHourlyRate(double) :void | | + computeSalary(double):double | | + toString() :String | |_________________________________| The input to the constructor is String Name, String SSNumber, int EmpID, String Dept, int YearHired, double TotalYearlyWages, String Position, double HourlyRate _________________________________ | Faculty | |_________________________________| | # double salary | | # String rank | |_________________________________| | | | + Faculty() | | + Faculty(see below) | | | | + getRank() :String | | + setRank(String) :void | | + computeSalary(double):double | |< accessors> | | + getSalary() :double | | + setSalary(double) :void | | + toString() :String | |_________________________________| The input to the constructor is String Name, String SSNumber, int EmpID, String Dept, int YearHired, double TotalYearlyWages, String Rank, double Salary