2012-09-27 31 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