首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java薪资系统

java薪资系统
EN

Stack Overflow用户
提问于 2015-01-26 23:49:59
回答 1查看 4.7K关注 0票数 0

我正在实现一个薪资系统,在这个系统中,我需要实现一个PayrollSystem类,以便将一个雇员添加到员工的ArrayList中,并为这些员工中的每一个创建检查。我编写了EmployeePaycheck类,但是PayrollSystem类有问题。

如何创建addEmployee方法?我是将Employee对象与该员工的信息一起传递给它,还是有其他方法?

雇员:

代码语言:javascript
复制
package payrollSystem;

public class Employee {
    private String firstName;
    private String lastName;
    private int ID;
    private double hourlyWage;
    private double hoursWorked;

    public Employee(String first, String last, int id, double wage, double hours) {
        firstName = first;
        lastName = last;
        ID = id;
        hourlyWage = wage;
        hoursWorked = hours;
    }

    public void setFirstName(String first) {
        this.firstName = first;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setLastName(String last) {
        this.lastName = last;
    }

    public String getLastName() {
        return lastName;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public int getID() {
        return ID;
    }

    public void setHourlyWage(double hourlyWage) {
        this.hourlyWage = hourlyWage;
    }

    public double getHourlyWage() {
        return hourlyWage;
    }

    public void setHoursWorked(double hoursWorked) {
        this.hoursWorked = hoursWorked;
    }

    public double getHoursWorked() {
        return hoursWorked;
    }

    public double calcPay(double wage, double hours) {
        wage = getHourlyWage();
        hours = getHoursWorked();

        return wage * hours;
     }
}

PayCheck:

代码语言:javascript
复制
package payrollSystem;

public class PayCheck {
    private String firstName;
    private String lastName;
    private int ID;
    private double netAmount;

    public PayCheck(String first, String last, int id, double wage, double hours) {
        firstName = first;
        lastName = last;
        ID = id;
        netAmount = wage * hours;
    }

    public String toString() {
        return "Paycheck issued for " + netAmount + "to " + firstName + ", "+ lastName + ", employee ID " + ID;
    }
}

PayrollSystem:

代码语言:javascript
复制
package payrollSystem;

import java.util.List;
import java.util.ArrayList;

public class PayrollSystem {
     public List<Employee> employees = new ArrayList<Employee>();
     public String companyName;

     PayrollSystem(String company) {
         companyName = company;
     }

     void addEmployee(Employee a) {
         employees.add(a);
     }

     void getHoursWorked(double hrs) {
         this.a.getHoursWorked();
     }

     void issueCheck() {
         double checkAmount = this.a.calcPay(a.getHoursWorked(), a.getHourlyWage());

         PayCheck check = new PayCheck(a.getFirstName(), a.getLastName(),  a.getID(), a.getHoursWorked(), a.getHourlyWage());

         check.toString();
     }
}
EN

回答 1

Stack Overflow用户

发布于 2015-01-26 23:55:34

您可以创建一个addEmployee()方法。只要您在某个地方创建了员工,然后将其传递给您的payRoll类。

假设您有一个List的员工:

代码语言:javascript
复制
public void addEmployee(Employee employee){
    employees.add(employee);
}

在您的main中,您可以直接离开(假设myEmployee是一个Employee对象):

代码语言:javascript
复制
PayrollSystem payrollSystem = new PayRollSystem();
payrollSystem.addEmployee(new Employee("John", "Smith", 1, wage, hours)); // Way 1
payrollSystem.addEmployee(myEmployee); // Way 2

Employee对象将包含员工的所有信息。所以当那个对象被传入时,所有的信息都会随之而来。这允许您从payrollSystem中获取所有员工,或者使用内部方法对他们执行操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28160934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档