Java 获取一个值形式;“获取并设置”;在爪哇

Java 获取一个值形式;“获取并设置”;在爪哇,java,Java,我有一个学校的问题,我一直坚持下去。问题是总工资一直保持在0.0 问题是: 使用以下字段设计工资单类: •名称:包含员工姓名的字符串 •idNumber:表示员工ID号的整数 •工资率:包含员工小时工资率的双倍 •小时数:表示该员工工作小时数的整数 该类还应具有以下方法: •构造函数:将员工的姓名和ID号作为参数 •访问器:允许访问工资单类的所有字段 •Mutators:让用户将值分配给Payroll类的字段 •grossPay:返回员工的总工资,计算为员工人数 工作时间乘以小时工资率 编写另一

我有一个学校的问题,我一直坚持下去。问题是总工资一直保持在0.0

问题是:

使用以下字段设计工资单类:

•名称:包含员工姓名的字符串 •idNumber:表示员工ID号的整数 •工资率:包含员工小时工资率的双倍 •小时数:表示该员工工作小时数的整数

该类还应具有以下方法:

•构造函数:将员工的姓名和ID号作为参数 •访问器:允许访问工资单类的所有字段 •Mutators:让用户将值分配给Payroll类的字段 •grossPay:返回员工的总工资,计算为员工人数 工作时间乘以小时工资率

编写另一个程序,通过创建Payroll对象来演示该类,然后 要求用户按以下顺序输入员工的数据:姓名、ID号、费率、小时数。 然后,程序应按以下格式打印一条语句(例如,如果 你有一个雇员叫Chris Jacobsen,身份证号码是11111,他在公司工作了5个小时 每小时10美元):

克里斯·雅各布森(Chris Jacobsen),11111号员工,总收入为50美元

使用文本格式,使工资总额四舍五入到小数点后两位

以下是我目前掌握的信息:


感谢您的帮助…

TotalGrossPay是一个计算值,除非您调用方法来计算它,否则它将保留为默认值(
0

事实上,无论如何都不应该存储这个值,因为它的值实际上是由其他字段的计算确定的

从类中删除
TotalGrossPay
字段,并编写一个简单的“getter”来计算值并返回它

public double getTotalGrossPay()
{
    return HourlyRate * HoursWorked;
}
一般来说,您不应该直接访问字段,而应该始终通过方法访问字段的值(设置/获取)

另外,不要忽略传递给构造函数的值

public Payroll(String Name, int ID, double HourlyRate, double HoursWorked)
{
    EmployeeName = Name;
    IDnumber = ID;
    // What about HourlyRate and HoursWorked??
}
让用户提供这些vai设置器或在构造函数中分配它们(是的,您可以在事后使用设置器更改值…)


您可能希望有一个通读,它将使人们更容易阅读您的代码,您也更容易阅读他人的代码

TotalGrossPay
是一个计算值,除非您调用方法来计算它,否则它将保留为其默认值(
0

事实上,无论如何都不应该存储这个值,因为它的值实际上是由其他字段的计算确定的

从类中删除
TotalGrossPay
字段,并编写一个简单的“getter”来计算值并返回它

public double getTotalGrossPay()
{
    return HourlyRate * HoursWorked;
}
一般来说,您不应该直接访问字段,而应该始终通过方法访问字段的值(设置/获取)

另外,不要忽略传递给构造函数的值

public Payroll(String Name, int ID, double HourlyRate, double HoursWorked)
{
    EmployeeName = Name;
    IDnumber = ID;
    // What about HourlyRate and HoursWorked??
}
让用户提供这些vai设置器或在构造函数中分配它们(是的,您可以在事后使用设置器更改值…)


您可能希望通读,这将使人们更容易阅读您的代码,您也更容易阅读其他人

在您的构造函数中,您不需要使用HourlyRate和HoursWorked执行任何操作

public Payroll(String Name, int ID, double HourlyRate, double HoursWorked)
为什么您的getter会使用您需要的参数将其重命名为
calculateGrossPay()
。删除它们并使用实例成员
HourlyRate
HoursWorked
计算总工资。这就是为什么结果是0.0

这里值得注意的另一点是,Java将未初始化时的双变量设置为0.0

public double getTotalGrossPay(double HourlyRate, double HoursWorked)

在您的构造函数中,您没有使用HourlyRate和HoursWorked执行任何操作

public Payroll(String Name, int ID, double HourlyRate, double HoursWorked)
为什么您的getter会使用您需要的参数将其重命名为
calculateGrossPay()
。删除它们并使用实例成员
HourlyRate
HoursWorked
计算总工资。这就是为什么结果是0.0

这里值得注意的另一点是,Java将未初始化时的双变量设置为0.0

public double getTotalGrossPay(double HourlyRate, double HoursWorked)

您提供了什么作为输入?您错过了对方法getTotalGrossPay的调用。不要使用pay.TotalGrossPay(因为这将返回默认设置为0的当前值),而是执行此支付。getTotalGrossPay()必须调用方法而不是pay。getTotalGrossPay和您的方法必须是静态的,或者在主方法中为pay类定义实例…您提供了什么作为输入?您错过了对方法getTotalGrossPay的调用。不要使用pay.TotalGrossPay(因为这将返回默认设置为0的当前值),而是执行此支付。getTotalGrossPay()必须调用方法而不是pay。getTotalGrossPay和您的方法必须是静态的,或者在主方法中为pay类定义实例……或者更好的方法是,从getter中删除参数。您发表评论时正在编辑文章。使用我的手机会让我慢下来或者更好,请从getter中删除参数。您发表评论时,我正在编辑帖子。使用我的手机会让我慢下来