不同类型员工存入数组打印某月工资
2016-12-13 11:16
239 查看
package gongzi; public class Employee { /** * 员工总类 */ private String name; private int month;//生日月份 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public void getSalary(int month){ } }
package gongzi; /** * 固定工资员工 * @author Administrator * */ public class SalariedEmployee extends Employee { private double money;//固定工资数; public double getMoney() { return money; } public void setMoney(double money) { this.money = money; } @Override public void getSalary(int month) { if(this.getMonth()==month){ System.out.println(this.getName()+""+month+"月份的工资为"+(money+1000)+"元"); } else{ System.out.println(this.getName()+""+month+"月份的工资为"+money+"元"); } }
package gongzi;
/**
* 无底薪销售
* @author Administrator
*
*/
public class SalesEmployee extends Employee {
private double money;//月销售额
private double tcl;//提成率
public double getMoney() { return money; } public void setMoney(double money) { this.money = money; } public double getTcl() { return tcl; } public void setTcl(double tcl) { this.tcl = tcl; } @Override public void getSalary(int month) { if(this.getMonth() == month){ System.out.println(this.getName()+""+month+"月份的工资为"+(money*tcl+1000)+"元"); }else{ System.out.println(this.getName()+""+month+"月份的工资为"+(money*tcl)+"元"); } }
package gongzi; /** * 小时工 * @author Administrator * */ public class HourlyEmployee extends Employee { private double money;//每小时工资 private double hour;//每月工作的小时数 public double getMoney() { return money; } public void setMoney(double money) { this.money = money; } public double getHour() { return hour; } public void setHour(double hour) { this.hour = hour; } @Override public void getSalary(int month) { double salary=0; if(hour > 160){ salary = (160*money)+(hour-160)*1.5*money; }else{ salary = hour*money; } if(this.getMonth()==month){ salary+=1000; } System.out.println(this.getName()+""+month+"月份的工资为"+salary+"元"); } }
package gongzi; /** * 有底薪销售 * @author Administrator * */ public class BasePlusSalesEmployee extends SalesEmployee { private double dx;//底薪 public double getDx() { return dx; } public void setDx(double dx) { this.dx = dx; } @Override public void getSalary(int month) { if(this.getMonth()==month){ System.out.println(this.getName()+month+"月工资为:"+((dx+this.getMoney())*(this.getTcl()+1000))+"元"); } else{ System.out.println(this.getName()+month+"月工资为:"+(dx+this.getMoney())*(this.getTcl()+1000)+"元"); } } }
package gongzi; /** * 测试类 * @author Administrator * */ public class Test { public static void main(String[] args) { SalariedEmployee e1=new SalariedEmployee(); e1.setMonth(2); e1.setName("张三"); e1.setMoney(3000); HourlyEmployee e2 = new HourlyEmployee(); e2.setMonth(3); e2.setName("李四"); e2.setMoney(10); e2.setHour(160); SalesEmployee e3 = new SalesEmployee(); e3.setMonth(2); e3.setName("王五"); e3.setMoney(30000); e3.setTcl(0.1); BasePlusSalesEmployee e4 = new BasePlusSalesEmployee(); e4.setMonth(4); e4.setName("赵六"); e4.setMoney(2000); e4.setTcl(0.1); e4.setDx(2000); Employee[] emp={e1,e2,e3,e4}; for (Employee employee : emp) { employee.getSalary(2); } } }
相关文章推荐
- 关于int型整数按逆序存入数组中的问题(也即十进制数和其他类型数据的转换问题)
- 委托示例(利用委托对不同类型的对象数组排序)
- 不同类型数组互相赋值
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- C#数组存入引用类型
- 比较高效地实现从两个不同数组中提取相同部分组成新的数组(暂时只支持Int类型)
- 给每位员工增加5%的工资,然后打印出来
- PHP 数组原形打印var_export() 数组类型打印var_dump()
- 使用光标查询10部门的员工姓名和工资,并打印__使用光标查询员工姓名和工资,并打印
- 关于字符串数组中存储不同类型的数值
- 海水与火焰——领导眼中两种不同类型的员工
- 项目经理如何管理不同类型员工的扯皮攻略
- 项目经理如何管理不同类型员工的扯皮攻略
- 用一个数组存放不同类型指针的想法
- 不同类型数组排序
- 委托示例(利用委托对不同类型的对象数组排序)
- 关于不同类型的结构体的数组的读取和保存的测试程序
- 项目经理如何管理不同类型员工的扯皮攻略
- C语言学习8:malloc返回的void*类型指针不可以做更改,free双重释放,二维数组的初始化和打印,a和a[0]和a[0][0]的区别,数组指针(*p)[3],指针数组*a[10],动态内存分配版约瑟夫环,动态分配版去空格和逗号处理,二级指针与二维数组互用
- 创建一个包,其中定义一个过程,可以查询得到编号为7900的员工的姓名ename、薪水sal、佣金comm、上司编号mgr (通过OUT类型的参数将结果返回并打印) (注意包有包头部分的声明和包体部分的