2012-09-27 64 views
-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(大約取決於輸入)。我被告知我沒有調用函數來設置值。我該如何去做?我嘗試了許多不同的方式,並認爲我做對了,但我似乎總是得到相同的輸出。調用類中的函數來設置變量

+3

你的來電顯示代碼在哪裏? – kosa

+0

你從哪裏設定值?並創建這個類的對象? –

+0

調用*什麼*功能?構造函數?你打電話過得怎麼樣? – 2012-09-27 17:34:57

回答

2

你是混合方法與簡單的setter/getters。你有一個屬性netPay,但getNetPay()不會返回它;相反,它從grossPay和扣除計算。計算結果返回給調用者,但不保存在對象的狀態中。你也有一個setGross(),但getGross()不會返回它。

決定什麼是類的屬性,以及應該計算什麼。您需要填充用於扣費的屬性調用getNetPay前:

employee.setFederalTax(0.13); 

(你缺少stateTax和fedTax帶動其他一些計算)。然後你可以使用這些計算:即計算應該不會有一組功能

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

什麼。

+0

小時,費率,州和聯邦稅都輸入到主要課程。如果不嘗試計算狀態並向netpay納稅,我可以使其正常工作。 (我可以讓程序給我一個毛支付)。吸氣劑不是從主程序類中提取信息嗎? – RwGWiccan

+0

我相信我想出了我需要遵循的過程。至少現在看來它運行正常。是你的getNetPay示例代碼,它幫助我理解了jalynn2!謝謝! – RwGWiccan