【发布时间】:2014-08-18 02:48:43
【问题描述】:
package CompanyEmployees;
public class DoEmployeePayroll {
public static void main(String args[]) {
FullTimeEmployee ftEmployee = new FullTimeEmployee();
ftEmployee.setName("Barry Burd");
ftEmployee.setJobTitle("CEO");
ftEmployee.setWeeklySalary(5000.00);
ftEmployee.setBenefitDeduction(500.00);
ftEmployee.cutCheck(ftEmployee.findPaymentAmount());
System.out.println();
PartTimeEmployee ptEmployee = new PartTimeEmployee();
ptEmployee.setName("Steve Surace");
ptEmployee.setJobTitle("Driver");
ptEmployee.setHourlyRate(7.53);
ptEmployee.cutCheck(ptEmployee.findPaymentAmount(10));
}
}
package CompanyEmployees;
import static java.lang.System.out;
public class Employee {
private String name;
private String jobTitle;
public void setName(String nameIn) {
name = nameIn;
}
public String getName() {
return name;
}
public void setJobTitle(String jobTitleIn) {
jobTitle = jobTitleIn;
}
public String getJobTitle() {
return jobTitle;
}
public void cutCheck(double amountPaid) {
out.printf("Pay to the order of %s ", name);
out.printf("(%s) ***$", jobTitle);
out.printf("%,.2f\n", amountPaid);
}
}
package CompanyEmployees;
public class PartTimeEmployee extends Employee {
private double hourlyRate;
public void setHourlyRate(double rateIn) {
rateIn = hourlyRate;
}
public double getHourlyRate() {
return hourlyRate;
}
public double findPaymentAmount(int hours) {
return hourlyRate * hours;
}
}
我计算了全职员工,但结果不正确的是兼职员工。付款应该是 75.30,但它输出 0.00。
【问题讨论】:
-
重新审视 setHourlyRate
-
不要对任何需要精确的东西使用浮点数。