公司支出的总薪水 (java 实验5.2)

Posted 你要永远相信光z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了公司支出的总薪水 (java 实验5.2)相关的知识,希望对你有一定的参考价值。

实验要求

要求有一个abstract类,类名为Employee。Employee的子类有YearWorker、MonthWorker、WeekWorker。YearWorker对象按年领取薪水,MonthWorker按月领取薪水,WeekWorker按周领取薪水。Employee类有一个abstract方法:
public abstract earnings();
子类必须重写父类的earnings()方法,给出各自领取报酬的具体方式。
有一个Company类,该类用Employee对象数组作为成员,Employee对象数组的单元可以是YearWorker对象的上转型对象、MonthWorker对象的上转型对象或WeekWorker对象的上转型对象。程序能输出Company对象一年需要支付的薪水总额。

代码

package com.company.实验1;

abstract class Employee {
    public abstract double earnings();
}
class YearWorker extends Employee {
    public double earnings() {
        return  12000; //重写earnings方法,返回按年领取的薪水,每年12000元
    }
}

class MonthWorker extends Employee {
    public double earnings() {
        return 2300 * 12; //重写earnings方法,返回按月领取的薪水,每月2300元
    }
}

class WeekWorker extends Employee {
    public double earnings() {
        return 780 * 52; //重写earnings方法,返回按周领取的薪水,每周780元,共52周。
    }
}

class Company {
    Employee[] employee;
    double salaries = 0;
    Company(Employee[] employee) {
        this.employee = employee;
    }
    public double salariesPay() {
        //计算公司所有员工的薪水总额。
        salaries = 0;
        for (int i = 0; i < employee.length; i++) {
            if (i % 3 == 0)
                salaries += employee[i].earnings();
            else if (i % 3 == 1)
                salaries += employee[i].earnings();
            else if (i % 3 == 2)
                salaries += employee[i].earnings();
        }
        return salaries;
    }
}

public class CompanySalary {
    public static void main(String args[]) {
        Employee[] employee = new Employee[29];
        for (int i = 0; i < employee.length; i++) {
            if (i % 3 == 0)
                employee[i] = new WeekWorker();
            else if (i % 3 == 1)
                employee[i] = new MonthWorker();
            else if (i % 3 == 2)
                employee[i] = new YearWorker();
        }
        Company company = new Company(employee);
        System.out.println("公司薪水总额:"+ company.salariesPay() + "元");
    }
}

运行结果

在这里插入图片描述

以上是关于公司支出的总薪水 (java 实验5.2)的主要内容,如果未能解决你的问题,请参考以下文章

编写一个 PL/SQL 块,从 Employee 表中显示部门名称和该部门的总工资支出

Packet Tracer 5.2实验(十三) 扩展IP访问控制列表配置

Packet Tracer 5.2实验(十五) 网络端口地址转换NAPT配置

Packet Tracer 5.2实验(十四) 网络地址转换NAT配置

薪水过高被公司解雇。。。

管理经济学[0812]