【发布时间】:2016-03-27 13:56:56
【问题描述】:
我创建了两个从基本“Employee”类扩展而来的类。我在下面展示了 Employee 和 Salesman 类。我需要配置 Salesman 类以显示年薪总额。员工类打印没问题,但是,我无法让销售员类打印年薪。我确定这很简单,但我被卡住了。任何帮助表示赞赏!
这是我目前得到的输出:
2014 年员工:
员工姓名:Smuck,Jenna,月薪=$3,000.00,年薪=$36,000.00
销售员姓名:Joans,Barbara,月薪=$3,200.00,年销售额=$100,000.00
销售员姓名:McMains,Ashley,月薪=$2,900.00,年销售额=$400,000.00
高管姓名:Seibert,Greg,月薪=$5,000.00,股价=$49.00
2014 年所有员工的平均工资 = $25,891.00
2015 年员工:
员工姓名:Kallinen,Brion,月薪=$3,100.00,年薪=$37,200.00
销售员姓名:Mentzer,Dickey,月薪=$4,100.00,年销售额=$75,000.00
销售员姓名:Thomas,Carol,月薪=$3,800.00,年销售额=$90,000.00
主管姓名:Tofte,Abby,月薪=$4,800.00,股价=$190.00
高管姓名:Kuehn,Jennifer,月薪=$6,000.00,股价=$79.00
主管姓名:Brown,Eric,月薪=$6,500.00,股价=$51.00
2015 年所有员工的平均工资 = 57,432.67 美元
构建成功(总时间:0 秒)
我需要它来打印销售员和高管的年薪。
package AverageSalary;
public class Employee {
private String employeeName;
private double monthlySalary;
// Constructor that initiailizes name and monthly salary
public Employee(String EmployeeName, double mnthSalary) {
employeeName = EmployeeName;
monthlySalary = mnthSalary;
}
//set Employee Name function
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
//get Employee Name Function
public String getEmployeeName() {
return employeeName;
}
//monthlySalary
public void setMonthlySalary(double monthlySalary) {
this.monthlySalary = monthlySalary;
}
public double getMonthlySalary() {
return monthlySalary;
}
// Method named annualSalary returns the salary for a whole year.
public double annualSalary() {
return getMonthlySalary() * 12;
}
// toString method returns string containing name and monthly salary
public String toString() {
return String.format("\nEmployee Name: %s, Monthly Salary=$%,.2f,"
+ "Annual Salary=$%,.2f", getEmployeeName(), getMonthlySalary(),
annualSalary());
}
}
________________________________________________________________________
package AverageSalary;
import java.util.HashSet;
public class Salesman extends Employee{
private double annualSales;
public double getAnnualSales() {
return annualSales;
}
// Constructor that initializes name, monthly salary and annual sales
Salesman(String Name, double mnthSalary, double dblAnnualSales)
{
super(Name, mnthSalary);
this.annualSales=dblAnnualSales;
}
//An overridden method annualSalary that returns the salary for year
//Salary of salesman consists of base salary computed from the monthly
salary plus a commission.
//The commission is computed as 2% of that salesman's annual sales.
//The maximum commission a salesman can earn is $20,000.
@Override
public double annualSalary()
{
double dblSalesCommission=0;
dblSalesCommission=(getMonthlySalary()*12)*0.02;
if ( dblSalesCommission > 20000)
dblSalesCommission=20000;
return getMonthlySalary()+dblSalesCommission;
}
@Override
public String toString()
{
return String.format("\nSalesman Name: %s, Monthly
Salary=$%,.2f,Annual
Sales=$%,.2f",
getEmployeeName(), getMonthlySalary(),
getAnnualSales() );
}
}
【问题讨论】:
-
您能否更清楚地说明问题?你有例外吗?如果是这样,您能否发布错误跟踪?您在哪个环境中使用这些类(Web 应用程序、独立等)?再见!
-
我在 Netbeans 中运行它。它编译运行良好,但不显示业务员的年薪。我唯一感到困惑的代码部分是最后几行。我不太清楚如何让它输出业务员的年薪。
-
请格式化您的代码,使其易于阅读。
-
如果您还包括当前获得的输出以及您期望的输出,将会很有帮助。
-
嗨,Tamas,很抱歉这个错误.. Joe..!我,还是不忘恩负义!也许你应该在 toString()... 中调用 yearSalary() 而不是 getAnnualSales() ?
标签: java