java中的eclipse工资单生成0
问题是:
设计一个Payroll类,该类包含员工姓名、ID号、小时工资率和工作小时数字段。编写适当的访问器和mutator方法,并创建一个接受员工姓名和ID号作为参数的构造函数。该类还应该有一个返回员工总工资的方法,该工资是按工作小时数乘以小时工资率计算的。编写一个程序,通过创建Payroll对象M,然后要求用户输入员工的数据来演示该类。该程序应显示所赚取的工资总额
这是我为这门课准备的东西
import java.util.Scanner; //Needed for scanner class.
public class Payroll
{
private String EmployeeName;
private int IDnumber;
private double HourlyPayRate;
private double HoursWorked;
private double GrossPay;
/**
Constructor
@param Name The name to store in EmployeeName.
@param ID The ID to store in Employee ID number.
*/
public Payroll(String Name, int ID)
{
EmployeeName = Name;
IDnumber = ID;
}
public String getEmployeeName()
{
return EmployeeName;
}
public int getIDnumber()
{
return IDnumber;
}
public void setHourlyPayRate(double HourlyRate)
{
HourlyPayRate = HourlyRate;
}
public double getHourlyPayRate()
{
return HourlyPayRate;
}
public void setHoursWorked(double hoursWorked)
{
HoursWorked = hoursWorked;
}
public double getHoursWorked()
{
return HoursWorked;
}
public double getGrossPay()
{
return HourlyPayRate * HoursWorked;
}
}
构造器
import java.util.Scanner; //Needed for Scanner class.
public class PayrollTest
{
public static void main(String[] args)
{
String EmployeeName;
int IDnumber;
double HoursWorked;
double HourlyPayRate;
double GrossPay;
//Create a Scanner object for keyboard input.
Scanner keyboard = new Scanner(System.in);
//Get the employee's name.
System.out.println("Enter an employee's name: ");
EmployeeName = keyboard.nextLine();
//Get the employee's ID.
System.out.println("Enter the employee's ID " );
IDnumber = keyboard.nextInt();
//Get the number of hours worked by the employee.
System.out.println("Enter the amount of hours worked by this employee: ");
HoursWorked = keyboard.nextDouble();
//Get the hourly pay rate of the employee.
System.out.println("Enter the hourly pay rate for this employee: ");
HourlyPayRate = keyboard.nextDouble();
//Create a payroll object, passing EmployeeName and IDnumber
// as arguments to the constructor.
Payroll pay = new Payroll(EmployeeName, IDnumber);
//Get the Gross Pay of the employee.
System.out.println("The gross pay of " + EmployeeName + " is: " + pay.getGrossPay());
}
}
当我编译它时,我没有得到任何错误,但我一直在最后得到grosspay=0.0的结果
# 1 楼答案
创建一个新的
Payroll
对象并在print语句中对其调用
getGrossPay()
方法该方法的作用如下:
由于您从未设置
HourlyPayRate
或HoursWorked
,因此该方法当然将返回0要解决此问题,请将这些值设置为从用户处读取的变量:
您可以在创建
Payroll
对象之后、调用getGrossPay()
方法之前添加这些行。因此,代码的最后四行现在应该如下所示: