-2
        package payroll3;

     /**
     *
     * @author Wiccan
     */
     //employee class
     public class Employee {

//fields
String name;
double rate;
double hours;
double gross;
double fedtax;
double statetax;
double deduction;
double netpay;

// constructor

public Employee(String name, double rate, double hours) {
    this.name = name;
    this.rate = rate;
    this.hours = hours;


}

    //returns net pay
    public double getNetPay() {
        return gross - deduction;
                }

        public String getName () {
        return name;
    }

    public void setName (String name) {
        this.name = name;
    }

    public double getHours() {
        return hours;
    }

    public void setHours(double hours) {
    this.hours = hours;
}

public double getRate() {
    return rate;
}

public void setRate(double rate) {
    this.rate = rate;
}

     public double getGross() {
        return hours*rate;
    }

    public void setGross(double gross) {
        this.gross = gross;
    }

    public double getFedtax() {
        return fedtax*gross;
    }

    public void setFedtax(double fedtax){
        this.fedtax = fedtax;
    }

    public double getStatetax() {
        return statetax*gross;
    }
    public void setStatetax(double statetax) {
        this.statetax = statetax;
    }

    public double getDeduction() {
        return statetax+fedtax;
    }

    public void setDeduction (double deduction) {
        this.deduction = deduction;
                }


    }

我基本上是想让这个类中的变量正常工作。当我用它的程序运行它时,我应该得到一笔净工资。但是,当我运行它时,我会得到 0.00 美元的金额,尽管我应该得到 296.00(大约取决于输入)。有人告诉我,我没有调用该函数来设置值。我该怎么做呢?我尝试了许多不同的方法,并认为我做对了,但我似乎总是得到相同的输出。

4

1 回答 1

2

您正在将方法与简单的 setter/getter 混合使用。您有一个属性 netPay,但 getNetPay() 不返回它;相反,它是根据 GrossPay 和扣除额来计算的。该计算的结果返回给调用者,但不保存在对象的状态中。您也有一个 setGross(),但 getGross() 不会返回它。

决定什么是类的属性,以及应该计算什么。在调用 getNetPay 之前,您需要填充用于扣除的属性:

employee.setFederalTax(0.13);

(您缺少 stateTax 和 fedTax 来驱动其他一些计算)。然后你可以使用这些计算:

public double getNetPay() {
    return getGross() - getDeductions();
}

任何计算出来的东西都不应该有一个集合函数。

于 2012-09-27T17:44:16.017 回答