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

book: starting out with >>JAVA from control structures through objects 6th editi

ID: 3836646 • Letter: B

Question

book: starting out with >>JAVA from control structures through objects 6th edition tony gaddis

java programming Question

exception project this assighment assumes you have completed programming challenges 1 of chapter 10 (emplyee and productionWorker Classes). Modify the employee and ProductionWorker classes so they throw exceptions when the following errors occur:

The employee class should throw an exception named InvalidEmployyNumber when it recieves an invalid employee number

the ProductionWorker class should throw an exception named InvalidShift when it recieves an invalid shift

The productionWorker class should throw an exception named InvalidPayRate when it recieves a negative number for the hourly pay rate.

Explanation / Answer

######### Exception Classes ##########

class Invalidpayrate extends Exception {

  

   public Invalidpayrate(String message){

       super(message);

   }

}

class InvalidEmployeeNumber extends Exception{

   public InvalidEmployeeNumber(String message) {

       super(message);

   }

}

class InvalidShift extends Exception{

  

   public InvalidShift(String message) {

       super(message);

   }

}

############ Employee.java #############

public class Employee

{

   private String Empname;

   private String Empnumber;

   private String Hiredate;

   public Employee()

   {

       Empname="";

       Empnumber="";

       Hiredate="";

   }

   public Employee (String Empname, String Empnumber,String Hiredate) throws InvalidEmployeeNumber

   {

       setName(Empname);

       setNumber(Empnumber);

       setHiredate(Hiredate);

   }

   public void setName(String n) throws InvalidEmployeeNumber

   {

       if( n == null || n.trim().equals(""))

           throw new InvalidEmployeeNumber("Employee name can not be null or empty");

      

       Empname = n;

   }

   public void setNumber(String num)

   {

       Empnumber = num;

   }

   public void setHireDate(String h)

   {

       Hiredate = h;

   }

   public String getName()

   {

       return Empname;

   }

   public String getNumber()

   {

       return Empnumber;

   }

   public String getHireDate()

   {

       return Hiredate;

   }

   private void setHiredate(String Hiredate) {

       this.Hiredate = Hiredate;

   }

}

############# ProductionWorker.java ##########

public class ProductionWorker extends Employee

{

   private int shift; // The employee's shift

   private double hourpayrate; // The employee's pay rate

   public ProductionWorker(String Empname, String Empnumber, String Hiredate,

           int shift, double hourpayrate) throws InvalidEmployeeNumber, InvalidShift, Invalidpayrate

   {

       super(Empname, Empnumber, Hiredate);

       setShift(shift);

       setHourlyPayRate(hourpayrate);

   }

   public int getShift()

   {

       return shift;

   }

   public double getHourlyPayRate()

   {

       return hourpayrate;

   }

   public void setShift(int s) throws InvalidShift

   {

       if(s < 0){

           throw new InvalidShift("Shift can not negative");

       }

       shift = s;

   }

   /**

   The setPayRate method sets the employee's pay rate.

   @param p The employee's pay rate.

   */

   public void setHourlyPayRate(double r) throws Invalidpayrate

   {

       if(r < 0)

           throw new Invalidpayrate("Pay rate can not be negative");

       hourpayrate = r;

   }

}

################# ProductionWorkerDemo.java ##########

import java.util.*;

public class ProductionWorkerDemo

{

   public static void main(String[] args)

   {

       String name,id,date;

       int shift;

       double pay;

       // Creates Scanner object

       Scanner keyboard = new Scanner(System.in);

       // Gets the user's name.

       System.out.println("Enter employee name: ");

       name = keyboard.nextLine();

       // Gets the user's employee number.

       System.out.println("Enter employee ID: ");

       id = keyboard.nextLine();

       // Gets the user's hire date.

       System.out.println("Enter employee date ");

       date = keyboard.nextLine();

       System.out.println("1-day Shift/n2-Night shift");

       System.out.println("Enter employee shift: ");

       shift = keyboard.nextInt();

       System.out.println("Enter hourly pay");

       pay = keyboard.nextDouble();

      

       try{

          

       // Creates an Production worker object.

           ProductionWorker pw = new ProductionWorker(name,id,date,shift,pay);

           System.out.println();

           System.out.println("Employee Name: " + pw.getName());

           System.out.println("Employee ID: " + pw.getNumber());

           System.out.println("Hire Date: " + pw.getHireDate());

           System.out.println("Shift: " + pw.getShift());

           System.out.println("Hourly Rate: " + pw.getHourlyPayRate());

          

       }catch(InvalidEmployeeNumber e){

           System.out.println(e.getMessage());

       }catch(Invalidpayrate e){

           System.out.println(e.getMessage());

       }catch(InvalidShift e){

           System.out.println(e.getMessage());

       }

   }

}