How to show the i) sequence of constructor calls; ii) use of protected access using different packages using the following code.  Attaching the picture of the question of the code. //creating class Employee class Employee {          //data fields     String name;     int empID;          //parameterized constructor to initialize data fields     public Employee(String name, int empID) {         this.name = name;         this.empID = empID;     }          //Override     public String toString() {          return String.format( "Employee: %s (ID: %d)", name, empID);           }  }   import java.util.Scanner; // class HourlyEmployee inherited from Employee class class HourlyEmployee extends Employee {          //data fields     double hourlyIncome;     int totalHours;     Scanner scan = new Scanner(System.in);          // parameterized constructor to initialize data fields     public HourlyEmployee(String name, int empID, double hourlyIncome) {         //call base class constructor with arguments         super(name, empID);         this.hourlyIncome = hourlyIncome;         System.out.print("Enter total hours for an Hourly Employee: ");         //input number of hours         totalHours = scan.nextInt();     }     //method to calculate income for totalHours      public double calculate_the_hourly_income() {         return (totalHours*hourlyIncome);     }     //Override     public String toString() {     return String.format("Employee: %s (ID: %d)\nThis month salary = %d * %.2f = %.2f", name, empID, totalHours,hourlyIncome,calculate_the_hourly_income());           }     }     // class PermanentEmployee inherited from Employee class class PermanentEmployee extends Employee {     double hourlyIncome;          // parameterized constructor to initialize data fields     public PermanentEmployee(String name, int empID, double hourlyIncome) {         //call base class constructor with arguments         super(name, empID);         this.hourlyIncome = hourlyIncome;     }     //method to calculate income for exact 180 hrs     public double calculate_the_income() {         return (180*hourlyIncome);     }      //Override     public String toString() {     return String.format("Employee: %s (ID: %d)\nThis month salary @%.2f PKR/Hour = %.2f", name, empID,hourlyIncome,calculate_the_income());           }        } //test class public class Main {     //main method  public static void main(String[] args) {            //create and initialize HourlyEmployee object      HourlyEmployee he = new HourlyEmployee("Ali",786,500);      //create and initialize PermanentEmployee object      PermanentEmployee pe = new PermanentEmployee("Ali",786,500);      System.out.println("-------Hourly Employee--------");      //call toString() method of HourlyEmployee      System.out.println(he);           System.out.println("-------Permanent Employee---------");      //call toString() method of PermanentEmployee      System.out.println(pe);  } }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

How to show the i) sequence of constructor calls; ii) use of protected access using different packages using the following code. 

Attaching the picture of the question of the code.

//creating class Employee
class Employee {
    
    //data fields
    String name;
    int empID;
    
    //parameterized constructor to initialize data fields
    public Employee(String name, int empID) {
        this.name = name;
        this.empID = empID;
    }
    
    //Override
    public String toString() {
         return String.format( "Employee: %s (ID: %d)", name, empID);      
    } 
}

 

import java.util.Scanner;

// class HourlyEmployee inherited from Employee class
class HourlyEmployee extends Employee {
    
    //data fields
    double hourlyIncome;
    int totalHours;
    Scanner scan = new Scanner(System.in);
    
    // parameterized constructor to initialize data fields
    public HourlyEmployee(String name, int empID, double hourlyIncome) {
        //call base class constructor with arguments
        super(name, empID);
        this.hourlyIncome = hourlyIncome;
        System.out.print("Enter total hours for an Hourly Employee: ");
        //input number of hours
        totalHours = scan.nextInt();
    }
    //method to calculate income for totalHours 
    public double calculate_the_hourly_income() {
        return (totalHours*hourlyIncome);
    }
    //Override
    public String toString() {
    return String.format("Employee: %s (ID: %d)\nThis month salary = %d * %.2f = %.2f", name, empID, totalHours,hourlyIncome,calculate_the_hourly_income());      
    }    
}

 

 

// class PermanentEmployee inherited from Employee class
class PermanentEmployee extends Employee {
    double hourlyIncome;
    
    // parameterized constructor to initialize data fields
    public PermanentEmployee(String name, int empID, double hourlyIncome) {
        //call base class constructor with arguments
        super(name, empID);
        this.hourlyIncome = hourlyIncome;
    }

    //method to calculate income for exact 180 hrs
    public double calculate_the_income() {
        return (180*hourlyIncome);
    }
     //Override
    public String toString() {
    return String.format("Employee: %s (ID: %d)\nThis month salary @%.2f PKR/Hour = %.2f", name, empID,hourlyIncome,calculate_the_income());      
    }  
    
}

//test class
public class Main
{
    //main method
 public static void main(String[] args) {
     
     //create and initialize HourlyEmployee object
     HourlyEmployee he = new HourlyEmployee("Ali",786,500);
     //create and initialize PermanentEmployee object
     PermanentEmployee pe = new PermanentEmployee("Ali",786,500);
     System.out.println("-------Hourly Employee--------");
     //call toString() method of HourlyEmployee
     System.out.println(he);     
     System.out.println("-------Permanent Employee---------");
     //call toString() method of PermanentEmployee
     System.out.println(pe);
 }
}

 

Complete the following tasks inside the Employee class:
1. Consider a base class named Employee and its derived classes HourlyEmployee and PermanentEmployee while
taking into account the following criteria.
a. Employee class has two data fields i.e. a name (of type string) and specific empID (of type integer)
b. It has a tostring method, which returns a string in the following format.
i. Employee: Ali (ID: 786)
c. Both classes (HourlyEmployee and PermanentEmployee) have an attribute named hourlylncome, while
the HourlyEmployee has an extra field named totalHours
d. Both classes (HourlyEmployee and PermanentEmployee) have three-argument constructors to initialize
the hourlylncome as well as data fields of the base class.
i. The id and name should be initialized using the constructor of the employee class
ii. The totalHours for HourlyEmployee should be input from user right inside the constructor
e. Class HourlyEmployee has a function named calculate_the_hourly_income to calculate the income of an
employee for the actual number of hours he or she worked.
f. Similarly, PermanentEmployee class has function named calculate_the_income to calculate the income
of an employee that gets paid the salary for exact 180 hours, no matter how many actual hours he or
she worked.
g. Implement the toString Method for both classes. The method should return the string formatted
according to following for each class:
HourlyEmployee
„Employee: Ali (ID: 786)
This month salary = 150 * 500 = 75000 This month salary @500 PKR/Hour = 90000
PermanentEmployee
Employee: Ali (ID: 786)
Printed using
tostring of
Employee class
The Test Class:
1. Develop the main() method inside the employee class, create an instance of both classes (i.e.
HourlyEmployee and PermanentEmployee) with the data of your own choice.
2. Test the working of functions that calculate the total income of an employee.
3. Test the toString methods of both classes by printing both objects in a print statement.
Transcribed Image Text:Complete the following tasks inside the Employee class: 1. Consider a base class named Employee and its derived classes HourlyEmployee and PermanentEmployee while taking into account the following criteria. a. Employee class has two data fields i.e. a name (of type string) and specific empID (of type integer) b. It has a tostring method, which returns a string in the following format. i. Employee: Ali (ID: 786) c. Both classes (HourlyEmployee and PermanentEmployee) have an attribute named hourlylncome, while the HourlyEmployee has an extra field named totalHours d. Both classes (HourlyEmployee and PermanentEmployee) have three-argument constructors to initialize the hourlylncome as well as data fields of the base class. i. The id and name should be initialized using the constructor of the employee class ii. The totalHours for HourlyEmployee should be input from user right inside the constructor e. Class HourlyEmployee has a function named calculate_the_hourly_income to calculate the income of an employee for the actual number of hours he or she worked. f. Similarly, PermanentEmployee class has function named calculate_the_income to calculate the income of an employee that gets paid the salary for exact 180 hours, no matter how many actual hours he or she worked. g. Implement the toString Method for both classes. The method should return the string formatted according to following for each class: HourlyEmployee „Employee: Ali (ID: 786) This month salary = 150 * 500 = 75000 This month salary @500 PKR/Hour = 90000 PermanentEmployee Employee: Ali (ID: 786) Printed using tostring of Employee class The Test Class: 1. Develop the main() method inside the employee class, create an instance of both classes (i.e. HourlyEmployee and PermanentEmployee) with the data of your own choice. 2. Test the working of functions that calculate the total income of an employee. 3. Test the toString methods of both classes by printing both objects in a print statement.
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Class
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education