Java 7 IDE Programming Language Design a class named Employ
(Java ? 7 IDE Programming Language)
Design a class named Employee. The class should keep the following information in fields: Employee name Employee number in the format XXX-L, where each X is a digit within the range 0-9 and the L is a letter within the range A-M. Hire date Write one or more constructors and the appropriate accessor and mutator methods for the class. Next, write a class named ProductionWorker that inherits from the Employee class. The ProductionWorker class should have fields to hold the following information: Shift (an integer) Hourly pay rate (a double) The workday is divided into two shifts: day and night. The shift field will be an integer value representing the shift that the employee works. The day shift is shift 1 and the night shift is shift 2. Write one or more constructors and the appropriate accessor and mutator methods for the class. Demonstrate the classes by writing a program that uses a ProductionWorker object.Solution
// Employee.java
public class Employee
 {
   
 // private fields
 private String employeeName;
 private String employeeNumber;
 private String employeeHireDate;
// public methods
 public Employee(String employeeName, String employeeNumber, String employeeHireDate)
 {
 this.employeeName = employeeName;
 this.employeeNumber = employeeNumber;
 this.employeeHireDate = employeeHireDate;
 }
  
 public String getemployeeName()
 {
 return employeeName;
 }
  
 public void setemployeeName(String employeeName)
 {
 this.employeeName = employeeName;
 }
  
 public String getemployeeNumber()
 {
 return employeeNumber;
 }
  
 public void setemployeeNumber(String employeeNumber)
 {
 this.employeeNumber = employeeNumber;
 }
  
 public String getemployeeHireDate()
 {
 return employeeHireDate;
 }
 public void setemployeeHireDate(String employeeHireDate)
 {
 this.employeeHireDate = employeeHireDate;
 }
  
 public String toString()
 {
 String result = \"Employee name: \" + employeeName + \"\ Employee number: \" + employeeNumber + \"\ Employee Hire Date: \" + employeeHireDate;
 return result;
 }
 }
 
 
 
// ProductionWorker.java
 public class ProductionWorker extends Employee
 {
   
 // private fields
 private int employeeShift;
 private double employeeHourlyPayRate;
// public methods
public ProductionWorker(String employeeName, String employeeNumber, String employeeHireDate, int employeeShift, double employeeHourlyPayRate)
 {
 super(employeeName, employeeNumber, employeeHireDate);
 this.employeeShift = employeeShift;
 this.employeeHourlyPayRate = employeeHourlyPayRate;
 }
 public ProductionWorker(ProductionWorker prodworker)
 {
 super(prodworker.getemployeeName(), prodworker.getemployeeNumber(), prodworker.getemployeeHireDate());
 this.employeeShift = prodworker.getemployeeShift();
 this.employeeHourlyPayRate = prodworker.getPayRate();
 }
 public int getemployeeShift()
 {
 return employeeShift;
 }
 public void setemployeeShift(int employeeShift)
 {
 this.employeeShift = employeeShift;
 }
 public double getPayRate()
 {
 return employeeHourlyPayRate;
 }
 public void setPayRate(double employeeHourlyPayRate)
 {
 this.employeeHourlyPayRate = employeeHourlyPayRate;
 }
 public String toString()
 {
 String result = super.toString();
 result = result + \"\ Employee employeeShift: \" + Integer.toString(employeeShift) + \"\ Employee Hourly Pay Rate: \" + Double.toString(employeeHourlyPayRate);
 return result;
 }
}
 
 
// Driver.java
public class Driver
 {
public static void main(String[] args)
 {
   
 Employee emp = new Employee(\"Alex Hales\", \"453-B\", \"12/34/2016\");
System.out.println(\"\ Employee Details: \");
 System.out.println(emp);
ProductionWorker prodWorker1 = new ProductionWorker(\"Jason Roy\", \"136-D\", \"11/17/2016\", 5, 35.5);
ProductionWorker prodWorker2 = new ProductionWorker(prodWorker1);
System.out.println(\"\ First Production Worker: \");
 System.out.println(prodWorker1);
System.out.println(\"\ Second Production Worker: \");
 System.out.println(prodWorker2);
 }
}
 /*
 output:
Employee Details:
 Employee name: Alex Hales
 Employee number: 453-B
 Employee Hire Date: 12/34/2016
First Production Worker:
 Employee name: Jason Roy
 Employee number: 136-D
 Employee Hire Date: 11/17/2016
 Employee employeeShift: 5
 Employee Hourly Pay Rate: 35.5
Second Production Worker:
 Employee name: Jason Roy
 Employee number: 136-D
 Employee Hire Date: 11/17/2016
 Employee employeeShift: 5
 Employee Hourly Pay Rate: 35.5
 */




