- Show that Employee is active (working) - Change the pay() in volunteer to get
ID: 3864277 • Letter: #
Question
- Show that Employee is active (working)
- Change the pay() in volunteer to get 500
- If Executive salary more than 1000 oer week do not give them bouns
- Change the data to show your changes in code
//********************************************************************
// Volunteer.java Java Foundations
//
// Represents a staff member that works as a volunteer.
//********************************************************************
public class Volunteer extends StaffMember
{
//-----------------------------------------------------------------
// Constructor: Sets up this volunteer using the specified
// information.
//-----------------------------------------------------------------
public Volunteer (String eName, String eAddress, String ePhone)
{
super (eName, eAddress, ePhone);
}
//-----------------------------------------------------------------
// Returns a zero pay value for this volunteer.
//-----------------------------------------------------------------
public double pay()
{
return 0.0;
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//********************************************************************
// StaffMember.java Java Foundations
//
// Represents a generic staff member.
//********************************************************************
abstract public class StaffMember
{
protected String name;
protected String address;
protected String phone;
//-----------------------------------------------------------------
// Constructor: Sets up this staff member using the specified
// information.
//-----------------------------------------------------------------
public StaffMember (String eName, String eAddress, String ePhone)
{
name = eName;
address = eAddress;
phone = ePhone;
}
//-----------------------------------------------------------------
// Returns a string including the basic employee information.
//-----------------------------------------------------------------
public String toString()
{
String result = "Name: " + name + " ";
result += "Address: " + address + " ";
result += "Phone: " + phone;
return result;
}
//-----------------------------------------------------------------
// Derived classes must define the pay method for each type of
// employee.
//-----------------------------------------------------------------
public abstract double pay();
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public class Staff {
private StaffMember[] staffList;
public Staff() {
staffList = new StaffMember[6];
staffList[0] = new Executive("Tony", "123 Main Line","555-0469", "123-45-6789", 2423.07);
staffList[1] = new Employee("Paulie", "456 Off Line","555-0101", "987-65-4321", 1246.15);
staffList[2] = new Employee("Vito", "789 Off Rocker","555-0000", "010-20-3040", 1169.23);
staffList[3] = new Hourly("Michael", "678 Fifth Ave.","555-0690", "958-47-3625", 10.55);
staffList[4] = new Volunteer("Adrianna", "987 Babe Blvd.", "555-8374");
staffList[5] = new Volunteer("Benny", "321 Dud Lane", "555-7282");
((Executive)staffList[0]).awardBonus(500.00);
((Hourly)staffList[3]).addHours(40);
}
public void payday() {
double amount;
for (int count=0; count < staffList.length; count++) {
System.out.println (staffList[count]);
amount = staffList[count].pay();
if (amount == 0.0)
System.out.println("Thanks!");
else
System.out.println("Paid: " + amount);
System.out.println("-----------------------------------");
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//********************************************************************
// Hourly.java Java Foundations
//
// Represents an employee that gets paid by the hour.
//********************************************************************
public class Hourly extends Employee
{
private int hoursWorked;
//-----------------------------------------------------------------
// Constructor: Sets up this hourly employee using the specified
// information.
//-----------------------------------------------------------------
public Hourly (String eName, String eAddress, String ePhone,
String socSecNumber, double rate)
{
super (eName, eAddress, ePhone, socSecNumber, rate);
hoursWorked = 0;
}
//-----------------------------------------------------------------
// Adds the specified number of hours to this employee's
// accumulated hours.
//-----------------------------------------------------------------
public void addHours (int moreHours)
{
hoursWorked += moreHours;
}
//-----------------------------------------------------------------
// Computes and returns the pay for this hourly employee.
//-----------------------------------------------------------------
public double pay()
{
double payment = payRate * hoursWorked;
hoursWorked = 0;
return payment;
}
//-----------------------------------------------------------------
// Returns information about this hourly employee as a string.
//-----------------------------------------------------------------
public String toString()
{
String result = super.toString();
result += " Current hours: " + hoursWorked;
return result;
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//********************************************************************
// Firm.java Java Foundations
//
// Demonstrates polymorphism via inheritance.
//*******************************************************************
public class Firm{
public static void main(String[] args)
{
Staff personnel = new Staff();
personnel.payday();
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//********************************************************************
// Executive.java Java Foundations
//
// Represents an executive staff member, who can earn a bonus.
//********************************************************************
public class Executive extends Employee
{
private double bonus;
//-----------------------------------------------------------------
// Constructor: Sets up this executive with the specified
// information.
//-----------------------------------------------------------------
public Executive (String eName, String eAddress, String ePhone,
String socSecNumber, double rate)
{
super (eName, eAddress, ePhone, socSecNumber, rate);
bonus = 0; // bonus has yet to be awarded
}
//-----------------------------------------------------------------
// Awards the specified bonus to this executive.
//-----------------------------------------------------------------
public void awardBonus (double execBonus)
{
bonus = execBonus;
}
//-----------------------------------------------------------------
// Computes and returns the pay for an executive, which is the
// regular employee payment plus a one-time bonus.
//-----------------------------------------------------------------
public double pay()
{
double payment = super.pay() + bonus;
bonus = 0;
return payment;
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//********************************************************************
// Employee.java Java Foundations
//
// Represents a general paid employee.
//********************************************************************
public class Employee extends StaffMember
{
protected String socialSecurityNumber;
protected double payRate;
//-----------------------------------------------------------------
// Constructor: Sets up this employee with the specified
// information.
//-----------------------------------------------------------------
public Employee (String eName, String eAddress, String ePhone,
String socSecNumber, double rate)
{
super (eName, eAddress, ePhone);
socialSecurityNumber = socSecNumber;
payRate = rate;
}
//-----------------------------------------------------------------
// Returns information about an employee as a string.
//-----------------------------------------------------------------
public String toString()
{
String result = super.toString();
result += " Social Security Number: " + socialSecurityNumber;
return result;
}
//-----------------------------------------------------------------
// Returns the pay rate for this employee.
//-----------------------------------------------------------------
public double pay()
{
return payRate;
}
}
Explanation / Answer
//********************************************************************/
// Employee.java Java Foundations
//
// Represents a general paid employee.
//********************************************************************/
public class Employee extends StaffMember
{
protected String socialSecurityNumber;
protected double payRate;
//-----------------------------------------------------------------
// Constructor: Sets up this employee with the specified
// information.
//-----------------------------------------------------------------
public Employee (String eName, String eAddress, String ePhone,
String socSecNumber, double rate)
{
super (eName, eAddress, ePhone);
socialSecurityNumber = socSecNumber;
payRate = rate;
}
//-----------------------------------------------------------------
// Returns information about an employee as a string.
//-----------------------------------------------------------------
public String toString()
{
String result = super.toString();
result += " Social Security Number: " + socialSecurityNumber;
return result;
}
//-----------------------------------------------------------------
// Returns the pay rate for this employee.
//-----------------------------------------------------------------
public double pay()
{
return payRate;
}
}
//********************************************************************/
// Executive.java Java Foundations
//
// Represents an executive staff member, who can earn a bonus.
//********************************************************************/
public class Executive extends Employee
{
private double bonus;
//-----------------------------------------------------------------
// Constructor: Sets up this executive with the specified
// information.
//-----------------------------------------------------------------
public Executive (String eName, String eAddress, String ePhone,
String socSecNumber, double rate)
{
super (eName, eAddress, ePhone, socSecNumber, rate);
bonus = 0; // bonus has yet to be awarded
}
//-----------------------------------------------------------------
// Awards the specified bonus to this executive.
//-----------------------------------------------------------------
public void awardBonus (double execBonus)
{
bonus = execBonus;
}
//-----------------------------------------------------------------
// Computes and returns the pay for an executive, which is the
// regular employee payment plus a one-time bonus.
//-----------------------------------------------------------------
public double pay()
{
double payment = super.pay();
//- If Executive salary more than 1000 per week do not give them bouns
if(payment <= 1000)
payment += bonus;
bonus = 0;
return payment;
}
}
/********************************************************************/
// Firm.java Java Foundations
//
// Demonstrates polymorphism via inheritance.
//*******************************************************************/
public class Firm{
public static void main(String[] args)
{
Staff personnel = new Staff();
personnel.payday();
}
}
//********************************************************************/
// Hourly.java Java Foundations
//
// Represents an employee that gets paid by the hour.
//********************************************************************/
public class Hourly extends Employee
{
private int hoursWorked;
//-----------------------------------------------------------------
// Constructor: Sets up this hourly employee using the specified
// information.
//-----------------------------------------------------------------
public Hourly (String eName, String eAddress, String ePhone,
String socSecNumber, double rate)
{
super (eName, eAddress, ePhone, socSecNumber, rate);
hoursWorked = 0;
}
//-----------------------------------------------------------------
// Adds the specified number of hours to this employee's
// accumulated hours.
//-----------------------------------------------------------------
public void addHours (int moreHours)
{
hoursWorked += moreHours;
}
//-----------------------------------------------------------------
// Computes and returns the pay for this hourly employee.
//-----------------------------------------------------------------
public double pay()
{
double payment = payRate * hoursWorked;
hoursWorked = 0;
return payment;
}
//-----------------------------------------------------------------
// Returns information about this hourly employee as a string.
//-----------------------------------------------------------------
public String toString()
{
String result = super.toString();
result += " Current hours: " + hoursWorked;
return result;
}
}
//********************************************************************/
// Staff.java Java Foundations
//
// Represents a staff that could be an hourly employee, or salaried employee.
//********************************************************************/
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public class Staff {
private StaffMember[] staffList;
public Staff() {
staffList = new StaffMember[6];
staffList[0] = new Executive("Tony", "123 Main Line","555-0469", "123-45-6789", 2423.07);
staffList[1] = new Employee("Paulie", "456 Off Line","555-0101", "987-65-4321", 1246.15);
staffList[2] = new Employee("Vito", "789 Off Rocker","555-0000", "010-20-3040", 1169.23);
staffList[3] = new Hourly("Michael", "678 Fifth Ave.","555-0690", "958-47-3625", 10.55);
staffList[4] = new Volunteer("Adrianna", "987 Babe Blvd.", "555-8374");
staffList[5] = new Volunteer("Benny", "321 Dud Lane", "555-7282");
((Executive)staffList[0]).awardBonus(500.00);
((Hourly)staffList[3]).addHours(40);
}
public void payday() {
double amount;
for (int count=0; count < staffList.length; count++) {
System.out.println (staffList[count]);
amount = staffList[count].pay();
if (amount == 0.0)
System.out.println("Thanks!");
else
System.out.println("Paid: " + amount);
System.out.println("-----------------------------------");
}
}
}
/********************************************************************/
// StaffMember.java Java Foundations
//
// Represents a generic staff member.
//********************************************************************/
abstract public class StaffMember
{
protected String name;
protected String address;
protected String phone;
//-----------------------------------------------------------------
// Constructor: Sets up this staff member using the specified
// information.
//-----------------------------------------------------------------
public StaffMember (String eName, String eAddress, String ePhone)
{
name = eName;
address = eAddress;
phone = ePhone;
}
//-----------------------------------------------------------------
// Returns a string including the basic employee information.
//-----------------------------------------------------------------
public String toString()
{
String result = "Name: " + name + " ";
result += "Address: " + address + " ";
result += "Phone: " + phone;
return result;
}
//-----------------------------------------------------------------
// Derived classes must define the pay method for each type of
// employee.
//-----------------------------------------------------------------
public abstract double pay();
}
//********************************************************************/
// Volunteer.java Java Foundations
//
// Represents a staff member that works as a volunteer.
//********************************************************************/
public class Volunteer extends StaffMember
{
//-----------------------------------------------------------------
// Constructor: Sets up this volunteer using the specified
// information.
//-----------------------------------------------------------------
public Volunteer (String eName, String eAddress, String ePhone)
{
super (eName, eAddress, ePhone);
}
//-----------------------------------------------------------------
// Returns a zero pay value for this volunteer.
//-----------------------------------------------------------------
public double pay()
{
//- Change the pay() in volunteer to get 500
return 500.0;
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.