-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;
                }


    }

私は基本的に、このクラス内の変数が正しく機能するようにしようとしています。それをプログラムで実行すると、正味支払額を受け取ることになっています。しかし、それを実行すると、296.00(入力に応じて約)を取得するはずですが、1ドルの金額で0.00を取得します。値を設定する関数を呼び出していないと言われました。どうすればそうできますか?私はさまざまな方法を試し、それが正しいと思いましたが、常に同じ出力が得られるようです。

4

1 に答える 1

2

あなたは単純なセッター/ゲッターとメソッドを混ぜています。属性netPayがありますが、getNetPay()はそれを返しません。代わりに、grossPayと控除から計算します。その計算の結果は呼び出し元に返されますが、オブジェクトの状態では保存されません。setGross()もありますが、getGross()はそれを返しません。

クラスの属性とは何か、そして何を計算する必要があるかを決定します。getNetPayを呼び出す前に、控除に使用される属性を設定する必要があります。

employee.setFederalTax(0.13);

(他の計算のいくつかを駆動するためのstateTaxとfedTaxがありません)。次に、これらの計算を使用できます。

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

計算されるものはすべて集合関数を持つべきではありません。

于 2012-09-27T17:44:16.017 に答える