调用类中的函数来设置变量

时间:2012-09-27 17:28:25

标签: java

        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(约取决于输入)。我被告知我没有调用函数来设置值。我该怎么做呢?我尝试了许多不同的方法,并认为我做得对,但我似乎总是得到相同的输出。

1 个答案:

答案 0 :(得分:2)

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

确定类的属性以及应该计算的内容。在调用getNetPay之前,您需要填充用于扣减的属性:

employee.setFederalTax(0.13);

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

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

任何计算出的东西都不应该有设定的功能。