In this assignment, you are to create a class named Payroll. In the class, you are to have the following data members: name: String id: String hours: int rate: double private members . You are to create no-arg and parameterized constructors and the appropriate setters(accessors) and getters (mutators). The class definition should also handle the following exceptions: An employee name should not be empty, otherwise an exception should be thrown. An employee id should have the form LNN. If that form is not received, an exception should be thrown. An employee's hours should neither be negative nor greater than 84. An exception should be thrown otherwise. An employee's pay rate should neither be negative nor greater than 25.00. An exception should be thrown otherwise. Demonstrate this class in a program (separate class or in the same class). The exception messages should be appropriate to the specific exception that has occurred. Create a package payroll for the project.

Respuesta :

Answer:

Here is the PayRoll class:

// PayRoll.java

package payroll;  // creates payroll package for project

public class Payroll {   //class definition

  private String name;   //private String type member variable to store name

  private String id;  //private String type member variable to store id

  private int hours;  //private int type member variable to store work hours

  private double rate;    //private double type member variable to store payrate of the employee

  public Payroll()    {  //no argument constructor of PayRoll

      name = "";   //initialize name field

      id = "";   //initialize id field

      hours = 0;  //initialize hours field

      rate = 0.0;    }  //  initialize rate field

  public Payroll(String NAME, String ID, int HOURS, double RATE)    { //parameterized constructor

      setName(NAME);  //sets name value

      setId(ID); //sets id value

      setHours(HOURS);  //sets hours value

      setRate(RATE);    }  //sets rate value

  public void setName(String NAME)    {  //mutator method to set name

      if(NAME.equals(""))        {  //if name field is empty

          throw new IllegalArgumentException("An employee name should not be empty.");        }     //throws exception

      name = NAME;    }  

  public void setId(String ID)    {        //mutator method to set id

      if(ID.length() != 3 || !Character.isLetter(ID.charAt(0))|| !Character.isDigit(ID.charAt(1)) || !Character.isDigit(ID.charAt(2)))        {  //if statement checks if the length of the id is not 3, or first character of id is not a letter, or second or third character of id is not a digit

          throw new IllegalArgumentException("An employee id should have the form LNN.");        }        //throws exception

      id = ID;    }    

  public void setHours(int HOURS)    {  //mutator method to set hours

      if(HOURS < 0 || HOURS > 84)        { //checks if working hours are less than 0 or greater than 84

          throw new IllegalArgumentException("An employee's hours should neither be negative nor greater than 84");        }    //throws exception    

      hours = HOURS;    }  

  public void setRate(double RATE)    {    //mutator method to set rate

      if(RATE < 0 || RATE > 25.00)        {  //checks if pay rate is less than 0 or greater than 25.00

          throw new IllegalArgumentException("An employee's pay rate should neither be negative nor greater than 25.00");        }         //throws exception    

      rate = RATE;    }    

  public String getName()    {  //accessor method to get value of name

      return name;    }   //returns the current value of name

  public String getId()    { //accessor method to get value of id

      return id;    }  //returns the current value of id

  public int getHours()    {  //accessor method to get value of hours

      return hours;    }    //returns the current value of hours

   public double getRate()    {  //accessor method to get value of rate

      return rate;    }  } //returns the current value of rate

Explanation:

Here is the Main() class:

import java.util.Scanner;  //to accept input from user

public class Main {  //Main class definition

  public static void main(String[] args)   {//start of main() function

      Payroll pay = new Payroll();  //creates object i.e. pay of PayRoll class

      Scanner sc = new Scanner(System.in);  //creates Scanner class object

      String name,id; //declare variables to hold name and id

      int hour;  //declare variable to store hour

      double rate; //declare variable to store pay rate

      System.out.print("Enter the employee's name: "); //prompts user to enter employee name

      name = sc.nextLine();  //reads input value of name

      pay.setName(name);  //use pay object to access mutator method to set name to input name value

      System.out.print("Enter employee's id (LNN form): "); //prompts user to enter employee id

      id = sc.nextLine();  //reads input value of id

      pay.setId(id);  //use pay object to access mutator method to set id to input id

      System.out.print("Enter the employee's working hours: "); //prompts user to enter employee hours

      hour = sc.nextInt();  //reads input value of hour

      pay.setHours(hour);  // set input hours

      System.out.print("Enter the employee's pay rate: "); //prompts user to enter employee pay rate

      rate = sc.nextInt(); //reads input value of rate

      pay.setRate(rate);  // set pay rate

      System.out.println("Employee Data: \n");  //displays the employee data

      System.out.println("Employee's Name: " + pay.getName());  //calls getName accessor method to get current value of name field and display it

      System.out.println("Employee's ID: " + pay.getId());  //calls getId accessor method to get current value of id field and displays it

      System.out.println("Employee's Hours: " + pay.getHours());  //calls getHours accessor method to get current value of hours field and displays it

      System.out.println("Employee's Pay Rate: " + pay.getRate()); //calls getRate accessor method to get current value of rate field and displays it

  }

}

Here IllegalArgumentException is thrown which is used to show that a method is passed an illegal argument.

The screenshot of program and its output is attached.

Ver imagen mahamnasir
Ver imagen mahamnasir
Ver imagen mahamnasir
ACCESS MORE
ACCESS MORE
ACCESS MORE
ACCESS MORE