J'écris le code pour l'employé, le directeur, le travailleur horaire pour une attribution de classe mais j'ai frappé un problème que je ne peux pas comprendre, ce qui suit est mon code pour l'employé suivi par le travailleur horaire. le problème est que l'employé horaire ne compilera pas, il donne une erreur "ne peut pas trouver l'employé du constructeur de symbole" quand j'essaye de compiler (les employés de la classe d'employé sans problème. ne peut plus voir le problème grâce pieterErreur de compilation Java: "impossible de trouver le constructeur de symbole .."?
EMPLOYÉ DE CLASSE -..
public class Employee
{
public String firstName;
public String lastName;
public double hourlyRate;
final static double NORMAL_WORKWEEK = 37.5;
public Employee(String firstName, String lastName, double hourlyRate)
{
setFirstName(firstName);
setLastName(lastName);
setHourlyRate(hourlyRate);
}
//Accessor and Mutator Methods for the employee's first name.
public String getFirstName()
{
return firstName;
}
public void setFirstName(String firstName)
{
firstName = firstName;
}
//Accessor and Mutator Methods for the employee's last name.
public String getLastName()
{
return lastName;
}
public void setLastName(String lastName)
{
lastName = lastName;
}
//Access and Mutator Methods for the employee's hourly rate.
public double getHourlyRate()
{
return hourlyRate;
}
public void setHourlyRate(double hourlyRate)
{
//If the user input is valid, update the employee's hour rate with the newly input value.
if(hourlyRate > 0)
{
hourlyRate = hourlyRate;
}
//Otherwise prevent an hour rate greater than zero being overwritten
else if(hourlyRate <=0)
{
if(hourlyRate <= 0)
{
hourlyRate = 0;
}
decorateConsole();
//Alert the user to their mistake.
System.out.println("Error ! ! ! - An attempt to set the employee " + this.firstName + " " + this.lastName + "'s hourly rate to zero was detected.\n");
decorateConsole();
}
}
public void printState()
{
decorateConsole();
System.out.println("[FIRST NAME] = " + firstName + " [LAST NAME] = " + lastName + " [HOURLY RATE] = " + hourlyRate + "\n");
decorateConsole();
}
public void decorateConsole()
{
System.out.println("+-< EMPLOYEE INFO >-------------------------------------------------------------------------------------------------------------------------+\n");
}
HORAIRES TRAVAILLEUR CLASSE -
public class HourlyWorker extends Employee
{
private double wage;
private double hours;
public HourlyWorker(String firstName, String lastName, double hourlyWage, double hoursWorked)
{
super(firstName, lastName);
this.wage = wage;
this.hours = hours;
}
public void setWage (double hourlyWage)
{
this.wage = wage;
}
public void getWage()
{
return wage;
}
public void setHours (double hours)
{
this.hours = hours;
}
public double getHours()
{
return hours;
}
}
Quelle est votre commande de compilation? – dacwe
Je vous suggère de coller le code d'erreur la prochaine fois, il est plus facile de repérer l'erreur de cette façon. – OscarRyz
Vos setters sont cassés. 'firstName = firstName' - qui affecte la valeur de' firstName' (variable locale) à la variable locale 'firstName' (c'est-à-dire qu'elle se substitue elle-même). Vous devriez écrire 'this.firstName = firstName'. – Crozin