公司支出的总薪水 (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配置