编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee 对象的生日,则将该雇员的工资增加100元。
说明:
- 定义一个Employee类
该类包含:
private成员变最name、number、birthday。其中birthday为MyDate类的对象;abstract方法earnings();toString()方法输出对象的name、number和birthday - MyDate类
包含:private成员变量month、day、year;toDateString()方法返回日期对应字符串:xxx年xx月xx日 - 定义salariedEmployee类继承Employee类,实现按月计算工资的员工处理。
该类包括:
private成员变量monthlySalary;实现父类的抽象方法earnings(),该方法返回monthlySalary值;toString()方法输出员工类型信息及员工的name,number , birthday。 - 参照SalariedEmployee类定义HourlyEmployee类,实现按小时计算工资的员
工处理。
该类包括:
private成员变量wage和hour;实现父类的抽象方法earnings(),该方法返回wage*hour值; toString()方法输出员工类型信息及员工的name,number , birthday。
public class test11 {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);System.out.println("请输入当月月份:");int m=scanner.nextInt();SalariedEmployee1 s1=new SalariedEmployee1("twl", 1345,new MyDate1(5, 29, 1999) , 7000);//System.out.println(s1.toString());HourlyEmployee1 h1=new HourlyEmployee1("twl", 1345,new MyDate1(7, 25, 1998),30,6);//System.out.println(h1.toString());HourlyEmployee1 h2=new HourlyEmployee1("twl", 1345,new MyDate1(9, 16, 2000),40,8);// System.out.println(h2.toString());Employee1[] e1=new Employee1[3];e1[0]=s1;e1[1]=h1;e1[2]=h2;for (int i = 0; i < e1.length; i++) {System.out.println(e1[i].toString());if (m==e1[i].getBirthday().getMonth()) {System.out.println("该员工本月过生日,薪资加100元");}System.out.println("--------------------------");}}
}
abstract class Employee1{private String name;private int number;private MyDate1 birthday;public Employee1(String name, int number, MyDate1 birthday) {super();this.name = name;this.number = number;this.birthday = birthday;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}public MyDate1 getBirthday() {return birthday;}public void setBirthday(MyDate1 birthday) {this.birthday = birthday;}abstract public double earnings();@Overridepublic String toString() {return "姓名:" + this.name + ", 电话:" + this.number + ", 生日:" + this.birthday;}
}
class MyDate1{private int month,day,year;public MyDate1(int month, int day, int year) {super();this.month = month;this.day = day;this.year = year;}public int getMonth() {return month;}public void setMonth(int month) {this.month = month;}public int getDay() {return day;}public void setDay(int day) {this.day = day;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}public String toDateString() {return this.year+"年 "+this.month+"月 "+this.day+"日";}@Overridepublic String toString() {return toDateString();}
}class SalariedEmployee1 extends Employee1{private double monthlySalary;public SalariedEmployee1(String name, int number, MyDate1 birthday, double monthlySalary) {super(name, number, birthday);this.monthlySalary = monthlySalary;}public double getMonthlySalary() {return monthlySalary;}public void setMonthlySalary(double monthlySalary) {this.monthlySalary = monthlySalary;}@Overridepublic double earnings() {return monthlySalary;}@Overridepublic String toString() {return super.toString()+ ", 月薪:" + this.monthlySalary;}
}
class HourlyEmployee1 extends Employee1{private double wage,hour;public HourlyEmployee1(String name, int number, MyDate1 birthday, double wage, double hour) {super(name, number, birthday);this.wage = wage;this.hour = hour;}public double getWage() {return wage;}public void setWage(double wage) {this.wage = wage;}public double getHour() {return hour;}public void setHour(double hour) {this.hour = hour;}@Overridepublic double earnings() {return this.wage*this.hour;}@Overridepublic String toString() {return super.toString()+", 日薪:" + earnings();}
}
编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee 对象的生日,则将该雇员的工资增加100元。相关推荐
- 对象、继承、封装、多态、抽象类的组合应用:编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee对象的生日,则将在该雇员的工资上增加100元发给他。
实验题目: 编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个Employee对象的生日,则将在该雇员的工资上增加100元发给他. 实验目的: 对象.继承.封装.多态.抽象类的组合 ...
- Java自学习day15-抽象类练习-编写工资系统,实现不同类型员工(多态)的按月发放工资
编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个 Employee对象的生日,则将该雇员的工资增加100元. 实验说明: (1)定义一个Employee类,该类包含: priva ...
- 编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个 Employee对象的生日,则将该雇员的工资增加100元。
工资系统 题目要求 设计思路 代码 运行结果 题目要求 附:题目来源于尚硅谷 编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个 Employee对象的生日,则将该雇员的工资增加1 ...
- java练习:编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee对象的生日,则将该雇员的工资增加100元。
1.员工类Employee: public abstract class Employee {//姓名private String name;//工号private String num;//生日pr ...
- javaswing员工工资系统java swing mysql 员工工资管理系统源码和导入文档(1014)
目录 1.系统运行环境 2.系统功能介绍 3.项目结构略讲 3.1乱码问题 3.2 如何将UTF-8编码系统修改为GBK编码的系统? 3.3 项目结构 3.4 项目修改 3.5 项目运行 3.6 代码 ...
- java题算工资_Java模版方法的小练习——工资系统
题目要求 解题思路 1.一共涉及了5个类,父类是Employee,父类中有个属性定义的是MyDate类的对象,存储的是生日信息.两个子类HourlyEmployee.SalariedEmployee代 ...
- 用抽象类简单实现一个发工资系统
首先,创建5个类: Employee:员工类,其中有earnings()抽象方法 HourlyEmployee:按每小时来计算工资(不固定工资) SalariedEmployee:按月份来计算工资(固 ...
- java实现多态在工资系统中的应用:给出一个根据雇员类型,利用多态性完成工资单计算的程序。
要求: Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间).CommissionWorker(除基本工资外还根据销售额发放浮动工资).PieceWork ...
- 继承练习 :开发一个系统时 需要对员工进行建模 员工包含3个属性 姓名 工号 工资 功能 work
/* 练习: 假如我们开发一个系统时 需要对员工进行建模 员工包含3个属性 姓名 工号 工资 功能 work 经理 也是员工 除了含有员工的属性外 另外还有一个奖金属性 请用继承的思想设计出 员工类 ...
最新文章
- python中的元类_python中的元类
- openvas进程间通讯api与报文交互
- 三十一、Scrapy爬取百度图片
- boost::hana::just用法的测试程序
- 截屏当前界面_电脑屏幕怎么截取,常见的几种电脑截屏方法
- 《Python Cookbook 3rd》笔记(5.21):序列化 Python 对象
- [Linux] 头文件加载顺序
- yii2实现WebService 使用 SoapDiscovery
- 锐起2540无盘教程
- 自动控制原理9.4---李雅普诺夫稳定性分析
- ubuntu虚拟机使用笔记——9、vmware卸载,重新安装ubuntu,重安后不能共享文件
- mybatis insert返回自增主键的id值
- OSChina 周四乱弹 —— 这个腿就有我来守护了
- [小把戏] 之IBatis.Net系统分页问题的解决
- 爆火书单视频怎么制作?实用制作教程来了
- node下载文件 解压压缩包
- css内边距外边距和边框
- Ubuntu备份还原
- 2021年广东省安全员B证第三批(项目负责人)新版试题及广东省安全员B证第三批(项目负责人)作业模拟考试
- 2022-2027年中国海洋功能性食品行业发展监测及投资战略研究报告