java题算工资_Java模版方法的小练习——工资系统

本文通过一个Java编程题目,展示了如何使用模版方法设计模式来构建一个多态工资系统。系统包括HourlyEmployee和SalariedEmployee两类员工,根据工作小时数或月薪计算工资。在PayrollSystem测试类中,利用Calendar获取当前月份,判断是否为员工的生日,如果是则增加100元工资。
摘要由CSDN通过智能技术生成

题目要求

eea3055b325da033fe705156486c2ff5.png

0b3dd648a219df31043283cf6ca07091.png

解题思路

1.一共涉及了5个类,父类是Employee,父类中有个属性定义的是MyDate类的对象,存储的是生日信息。两个子类HourlyEmployee、SalariedEmployee代表两种不同类型的员工。

最后一个是测试类PayrollSystem

2.值得讲一下的地方,是测试类中使用了Calendar类,获取当前时间,以后我们还将提到

3.测试中的逻辑要清楚,如

1d565477d1288898f3e8250fa38cef21.png,这个地方父类是一个abstract类,不能造对象,但这里只是创建了一个Employee类型的数组名字叫p,不是造对象,

栈里有个emps,指向了堆空间的Employee数组,我们需要给数组再写入对象的时候就需要是子类了,如:

f81814037f895ee5d8575e70e629495b.png

这里在SalariedEmolyee这个子类的构造器里new了MyDate对象并调用构造器还是第一次见。。。。

具体实现

父类Employee

package com.atguigu.exer;

/*

* 编写工资系统,实现不同类型员工(多态)的按月发放工资。

* 如果当月出现某个Employee对象的生日,则将该雇员的工资增加100元。

*

*/

abstract public class Employee {

private String name;

private int number;

private MyDate birthday;

public Employee() {

}

public Employee(String name, int number, MyDate birthday) {

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值