• 计算员工工资


    1、员工总类

    package LESSON6;
    //员工总父类
    public class Employee {
        private String name;
        private int month;
        public Employee(String name,int month){//生日
            this.name=name;
            this.month=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 double getSalary(int month){//当前月份
            if(this.month==month){
                return 100;
            }
            else{
                return 0;
            }        
        }
    }

    2、小时工类

    package LESSON6;
    public class HourlyEmployee extends Employee{
        private int hour;
        private double hsalary;
        public  HourlyEmployee(String name,int month,int hour,double hsalary){
            super(name,month);
            this.hour=hour;
            this.hsalary=hsalary;        
        }
        public double getSalary(int month){//当前月份
            if(hour<=160){
            return hsalary*hour+super.getSalary(month);
            }
            else{
                return (hsalary*160+(hour-160)*hsalary*1.5)+super.getSalary(month);
            }                
        }   
    }

    3、固定工资员工类

    package LESSON6;
    //拿固定工资的员工
    public class SalariedEmployee extends Employee {
        public double msalary;//成员变量
        public SalariedEmployee(String name,int month,double msalary){//生日
            super(name,month);
            this.msalary=msalary;    
        }
        public double getSalary(int month){//当前月份
            return msalary+super.getSalary(month);                
        }            
    }

    4、销售人员类

    package LESSON6;
    public class SalesEmployee extends Employee{
        private double saleamonunt;
        private double rate;
    public SalesEmployee(String name,int month,double saleamonunt,double rate){    
        super(name,month);
        this.saleamonunt=saleamonunt;
        this.rate=rate;
    }
    public double getSalary(int month){
        return saleamonunt*rate+super.getSalary(month);
    }
    }

    5、有固定底薪的销售人员类

    package LESSON6;
    public class BasePlusSalesEmployee extends SalesEmployee{
        private double basesalary;  
        public BasePlusSalesEmployee(String name,int month,double basesalary,double saleamonunt,double rate){
            super(name,month,saleamonunt,rate);
            this.basesalary=basesalary;        
        }
        public double getSalary(int month){
            return basesalary+super.getSalary(month);
        }
    }

    6、测试类

    package LESSON6;
    import java.util.Scanner;
    public class TestEmployee {
        public static void main(String[] args) {
            Employee se=new SalariedEmployee("张三",2,3000);
            System.out.println(se.getSalary(3));        
            Employee he=new HourlyEmployee("李四",3,180,10);
            System.out.println(he.getSalary(4));        
            Employee sse=new SalesEmployee("杨四",4,200000,0.02);
            System.out.println(sse.getSalary(5));          
            Employee bpse=new BasePlusSalesEmployee("王五",5,200000,0.01,3000);
            System.out.println(bpse.getSalary(6));        
            while(true){
            System.out.println("请输入要查询的月份,输入0结束");
            Scanner sc=new Scanner(System.in);
            int month=sc.nextInt();
            if(month==0){break;}
            else{        
            Employee emp[]={se,he,sse,bpse};
            System.out.println("姓名"+"	"+"生日月份"+"	"+"当前工资");
            for (int i = 0; i < emp.length; i++) {        System.out.println(emp[i].getName()+"	"+emp[i].getMonth()+"	"+emp[i].getSalary(month));
            }
            }
            }                
        }
    }

    7、运行结果

  • 相关阅读:
    高通、猎户机型Android典型bootloader分析
    Ubuntu 14.04 中安装 VMware10 Tools工具
    Linux内核中的GPIO系统之(3):pin controller driver代码分析
    linux内核中的GPIO系统之(2):pin control subsystem
    linux内核中的GPIO系统之(1):软件框架
    WINCE6.0组件选择说明
    看看,这就是微软的“万物互联”系统 window10 IOT
    高通平台 lcd driver 调试小结
    STM8S定时器工作
    开关笔记
  • 原文地址:https://www.cnblogs.com/qfdy123/p/10952539.html
Copyright © 2020-2023  润新知