He estado atascado tratando de encontrar el eslabón perdido, la demostración del empleado, pero el pago no calculará. Podría utilizar el conocimiento como me parece que no puede darse cuenta de lo que causaría esto. Hago creer las mentiras de problemas en TestEmployee.java.
Employee.java
package salary;
public abstract class Employee {
public String fullName;
public Employee() {
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public abstract double getBiWeeklyPay();
public void printgetBiWeeklyPay() {
System.out.println("Employee "+this.fullName+ "'s"+ "Bi-weekly pay is:");
}
}
.java EmpleadoPorHoras
package salary;
public class HourlyEmployee extends Employee {
public double hourlyRate;
public double hoursPerWeek;
public HourlyEmployee() {
}
public double getBiWeeklyPay() {
return hourlyRate * (hoursPerWeek *2);
}
public double getHourlyRate() {
return hourlyRate;
}
public void setHourlyRate(double hourlyRate) {
this.hourlyRate = hourlyRate;
}
public double getHoursPerWeek() {
return hoursPerWeek;
}
public void setHoursPerWeek(double hoursPerWeek) {
this.hoursPerWeek = hoursPerWeek;
}
}
SalaryEmployee.java
package salary;
public class SalaryEmployee extends Employee {
public SalaryEmployee() {
}
public double salary;
public double getBiWeeklyPay() {
return salary/(52*2) ;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
TestEmployee.java
package salary;
import java.util.*;
public class TestEmployee {
public static void main(String[] args){
java.util.ArrayList<Employee> employees = new java.util.ArrayList<Employee>();
SalaryEmployee john = new SalaryEmployee();
john.setFullName("John Doe");
john.setSalary(50000.00);
employees.add(john);
HourlyEmployee bob = new HourlyEmployee();
bob.setFullName("Bob Smith");
bob.setHourlyRate(15.00);
bob.setHoursPerWeek(20.00);
employees.add(bob);
HourlyEmployee Joe = new HourlyEmployee();
Joe.setFullName("Joe Moe");
Joe.setHourlyRate(27.00);
Joe.setHoursPerWeek(45.00);
employees.add(Joe);
HourlyEmployee Doe = new HourlyEmployee();
Doe.setFullName("Doe Joe");
Doe.setHourlyRate(20.00);
Doe.setHoursPerWeek(25.00);
employees.add(Doe);
print(employees);
}
public static void print(ArrayList<Employee> employees){
for(Employee e: employees){
e.printgetBiWeeklyPay();
}
}
}
Empleado, el salario, cada hora se premade principalmente a lo largo con TestEmployee i instruyó. He leído a través de mi libro de texto y mis maestros conferencias, y todo parece estar en orden. Espero que alguien me pudiera dar una pista y voy a tener una mejor comprensión.
public void printgetBiWeeklyPay() {
System.out.println("Employee "+this.fullName+ "'s"+ "Bi-weekly pay is:");
}
En referencia a su código de arriba, su printgetBiWeeklyPay método () simplemente hizo lo que usted ha mencionado, imprimir el nombre del empleado y pago quincenal, pero sin el número ... ¿Se puede ver que se echa en falta la variable crucial en la sentencia de impresión? ¿Dónde está la variable de pago bisemanal? Nunca se lo llama, por lo tanto, no se produce ninguna salida del pago bisemanal.
Quizás:
public void printgetBiWeeklyPay() {
System.out.print("Employee "+this.fullName+ "'s"+ "Bi-weekly pay is:" + String.valueOf(this.getBiWeeklyPay());
}