📜  门| GATE-CS-2015(套装2)|第 34 题(1)

📅  最后修改于: 2023-12-03 15:28:44.386000             🧑  作者: Mango

题目介绍:GATE-CS-2015(套装2)- 第 34 题

本题目涉及到 Java 编程语言中的面向对象编程和异常处理知识。程序员需要编写一个 Java 程序,在其中实现以下要求:

  • 定义一个 Employee 类,该类中包含员工的基本信息 —— 姓名、生日、员工号码等。
  • 定义两个子类 ManagerClerk,用于表示经理和文员,这两个类都是 Employee 类的子类。
  • Employee 类提供一个计算薪水的方法 calculateSalary(),该方法返回一个浮点数,表示员工的薪水。
  • 对于 ManagerClerk 类,分别重写其父类中的 calculateSalary() 方法,以计算不同类型员工的薪水。
  • main() 方法中创建一个 Employee 类对象数组和两个子类的对象,用于模拟公司中的员工情况。
  • 统计公司的薪水支出情况,并将结果打印输出。

在实现程序的过程中,需要注意对异常的检查与处理,以保证程序的正确性和稳定性。

以下是本程序的大体实现过程:

  1. 创建 Employee 类,用于储存员工的基本信息。
class Employee {
    String name;
    String birthday;
    int employeeNumber;

    public Employee(String name, String birthday, int employeeNumber) {
        this.name = name;
        this.birthday = birthday;
        this.employeeNumber = employeeNumber;
    }

    public double calculateSalary() {
        // 在子类中被覆盖
        return 0.0;
    }
}
  1. 创建 Manager 类和 Clerk 类,它们是 Employee 类的子类,用于表示经理和文员。
class Manager extends Employee {
    double basicSalary;
    
    public Manager(String name, String birthday, int employeeNumber, double basicSalary) {
        super(name, birthday, employeeNumber);
        this.basicSalary = basicSalary;
    }
    
    public double calculateSalary() {
        return basicSalary + bonus;
    }
}

class Clerk extends Employee {
    double basicSalary;
    
    public Clerk(String name, String birthday, int employeeNumber, double basicSalary) {
        super(name, birthday, employeeNumber);
        this.basicSalary = basicSalary;
    }
    
    public double calculateSalary() {
        return basicSalary;
    }
}
  1. main() 方法中创建一个 Employee 类对象数组和两个子类的对象,用于模拟公司中的员工情况。
public static void main(String[] args) {
    Employee[] employees = new Employee[3];
    
    employees[0] = new Manager("Tom", "1995-08-01", 1001, 10000);
    employees[1] = new Clerk("Jarry", "1997-02-08", 1002, 5000);
    employees[2] = new Clerk("Marry", "1999-05-20", 1003, 4000);
}
  1. 统计公司的薪水支出情况,并将结果打印输出。
double totalSalary = 0.0;

for (Employee employee : employees) {
    totalSalary += employee.calculateSalary();
}

System.out.println("Total salary payout: " + totalSalary);

在实际应用中,程序员需要根据具体需求进行修改和扩展,以满足业务上的需要。