0

I have the following prgoramming challenge to complete.. I am confused with a few things.. I have created the three classes which I have attached. I am struggling with the following if anyone could help i would appreciate it.

- Using and passing the DAY_SHIFT and NIGHT_SHIFT
- How to use the XXX-L format in the program.

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 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

Attachments
public class Employee 
{
    private String employeeName;
    private String employeeNumber;
    private String hireDate;
    
    public Employee(String n, String num, String d)
    {
        employeeName = n;
        employeeNumber = num;
        hireDate = d;
    }
        
    
    public void setName(String n)
    {
     employeeName = n;   
        
    }
    
    public void setEmployeeNumber(String num)
    {
    employeeNumber = num;
        
    }
    
    public void setHireDate(String d)
    {
        hireDate = d;
    }
    
    public String getName()
    {
        return employeeName;
    }
    
    public String getEmployeeNumber()
    {
        return employeeNumber;
    }
    
    public String getHireDate()
    {
        return hireDate;
    }
    
    public String toString()
    {
        String str = "Name: " + employeeName
                +"Employee Number: " + employeeNumber
                +"Hire Date: " + hireDate;
       
       return str;
    }
    
    
    
    
    }
public class ProductionWorker extends Employee
{
    static int NIGHT_SHIFT = 2;
    static int DAY_SHIFT = 1;
    private int shift;
    private double payRate;
    private String number;
    private String date;

   
    public ProductionWorker (String num, String d, int sh, double rate)
    {
        number = num;
        date = d;
        shift = sh;
        payRate = rate;
    }
    
    public ProductionWorker()
    {
        
        // no arg
    }

    
    
    public void setShift(int s)
    {
      
        shift = s;
    }
    
    public void setPayRate(double p)
    {
        payRate = p;
    }
    
    public int getShift()
    {
        return shift;
    }
    
    public double getPayRate()
    {
        return payRate;
    }
    
    public String toString()
    {
        String str = "Shift: " + shift
                + "Hourly Rate: " + payRate;

    }
    
    
        
    
    }
public class WorkerDemo
{
        public static void main(String[] args)
        {
                String shift;  

                Employee pw =
                     new ProductionWorker("John Smith", "123-A", "11-15-2005",
                                          ProductionWorker.DAY_SHIFT, 16.50);

        
                System.out.println("Here's the first production worker.");
                System.out.println(pw);
                System.out.println();

                pw.setName("Jon Smyth");
                pw.setEmployeeNumber("123-B");
                pw.setHireDate("11-15-2004");
                System.out.println("After making some changes.");
                System.out.println("             Name: " + pw.getName());
                System.out.println(
                    "  Employee Number: " + pw.getEmployeeNumber());
                System.out.println("        Hire Date: " + pw.getHireDate());
                System.out.println();

               
                ProductionWorker pw2 = new ProductionWorker();
                pw2.setName("Joan Jones");
                pw2.setEmployeeNumber("222-L");
                pw2.setHireDate("12-12-2005");
                pw2.setShift(ProductionWorker.NIGHT_SHIFT);
                pw2.setPayRate(18.50);

            
                System.out.println("\nHere's the second production worker.");
                System.out.println(pw2);
        }
}
2
Contributors
1
Reply
6
Views
9 Years
Discussion Span
Last Post by javaAddict
0

The Employee class has these declared private:

private String employeeName;
private String employeeNumber;
private String hireDate;


Since the ProductionWorker extends the Employee you don't need to declare them again in the ProductionWorker class. Declare only these variables:

private int shift;
private double payRate;

Since the first 3 in the Employee class are private use the get, set methods to have access to them. The constructor of ProductionWorker should have 5 arguments.
The first 3: String employeeName, String employeeNumber, String hireDate should be set using the set methods inherited by Employee and the other 2 directly to the shift and payRate.

Also the static variables should also be public and final. Since they will never change value no matter how many instances you create (the Night shift should always be 2 and the Day 1) you were right to have them static. But you need to make them final in order to ensure that nobody can change their values within the program. And of course public so others can use them as constants.


From the above suggestions you should be able to correct the Demo class.
Also the toString method of ProductionWorker should also print the employeeName, employeeNumber, hireDate. Use the get methods.

And you might want to check the argument of setEmployeeNumber(String num) . I think that you need to check if the format of the input is the one specified in the instructions: XXX-L

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.