本文共 4288 字,大约阅读时间需要 14 分钟。
//员工工资管理系统
// 员工工资的计算方式
// 按月计算
// 按小时计算
// 如果是生日奖励100元
//实现方式如下
//先声明一个员工类
package com.day28.test;
public abstract class Employee {
private String nameString; private int number; private MyDate birthdayDate; public Employee(String nameString, int number, MyDate birthdayDate) { super(); this.nameString = nameString; this.number = number; this.birthdayDate = birthdayDate; }public String getNameString() {
return nameString; }public void setNameString(String nameString) {
this.nameString = nameString; }public int getNumber() {
return number; }public void setNumber(int number) {
this.number = number; }public MyDate getBirthdayDate() {
return birthdayDate; }public void setBirthdayDate(MyDate birthdayDate) {
this.birthdayDate = birthdayDate; }//收入
public abstract double earnings();@Override
public String toString() { //快捷键生成 alt+shift+s return "nameString=" + nameString + ", number=" + number + ", birthdayDate=" + birthdayDate.toDateString() ; }}
//声明一个日期类
package com.day28.test;
public class MyDate {
private int year; private int month; private int day; //构造器 public MyDate(int year, int month, int day) { super(); this.year = year; this.month = month; this.day = day; }public int getYear() {
return year; }public void setYear(int year) {
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 String toDateString() {
return year+"年"+month+"月"+day+"日"; }}
//声明一个计算员工月工资的类
package com.day28.test;
//实现 按月计算工资的员工处理 public class SalariedEmployee extends Employee {//月工资
private double monthSalary; //因为父类没有空构造器 所以子类继承时 要声明构造器 往父类传参 public SalariedEmployee(String nameString, int number, MyDate birthdayDate) { super(nameString, number, birthdayDate); // TODO Auto-generated constructor stub }public SalariedEmployee(String nameString, int number, MyDate birthdayDate, double monthSalary) {
super(nameString, number, birthdayDate); this.monthSalary = monthSalary; } @Override public double earnings() { //收入 // TODO Auto-generated method stub return monthSalary; } public double getMonthSalary() { return monthSalary; }public void setMonthSalary(double monthSalary) {
this.monthSalary = monthSalary; }@Override
public String toString() { //重写 // TODO Auto-generated method stub return "SalariedEmployee ==>"+super.toString(); }}
//声明一个计算小时工资的类
package com.day28.test;
//按小时计算工资
public class HourlyEmployee extends Employee { private double wage; //每小时工资 private double hour; //小时 public HourlyEmployee(String nameString, int number, MyDate birthdayDate, double wage, double hour) { super(nameString, number, birthdayDate); this.wage = wage; this.hour = hour; }//因为父类没有空构造器 所以子类继承时 要声明构造器 往父类传参
public HourlyEmployee(String nameString, int number, MyDate birthdayDate) { super(nameString, number, birthdayDate); // TODO Auto-generated constructor stub } @Override public double earnings() { //重写收入 // TODO Auto-generated method stub return wage*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; }@Override
public String toString() { //重写方法 // TODO Auto-generated method stub return "HourlyEmployee ==>"+super.toString(); }}
//调试程序类
package com.day28.test;
import java.util.Calendar;
import java.util.Scanner;//工资管理系统
public class PayrollSystem { public static void main(String[] args) { //方式一 //输入当前月份 如果有人生日 奖励一百块钱 // Scanner scanner =new Scanner(System.in); // System.out.println("请输入日期"); // int month =scanner.nextInt(); //方式二 Calendar calendar =Calendar.getInstance(); int month=calendar.get(Calendar.MONTH)+1; //获取当前日期 System.out.println("当前日期"+month); // 他是从0开始的 所以要+1 //new 一个对象数组 还没去NEW 对象 这是声明了个对象数组 长度为2 Employee[] employee=new Employee[2]; //声明对象 employee[0]=new SalariedEmployee("Json", 1002,new MyDate(2020, 9, 10),12000); employee[1]=new HourlyEmployee("Whl", 1003, new MyDate(1994, 10, 15),200,8); for (int i = 0; i < employee.length; i++) { System.out.println(employee[i]); double salay= employee[i].earnings(); System.out.println("月工资为"+salay); if(month == employee[i].getBirthdayDate().getMonth()) { System.out.println("生日奖励100元!!!"); } } }}
转载地址:https://jsonll.blog.csdn.net/article/details/108353358 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!