В настоящее время я пишу программу, которая должна читать текстовый файл, создавать массив разных типов сотрудников (каждый из них имеет свой собственный подкласс), а затем распечатывать информацию в другом формате. Я думаю, что у меня большая часть работы, но всякий раз, когда я пытаюсь создать объекты (по крайней мере, я думаю, что это именно так), я получаю ошибку «Constructor is undefined». Это происходит на всех 7 этих объектах. Я просто отправлю его сюда (вместе с его подклассом), чтобы вы, ребята, не перегружали информацией, и, надеюсь, я смогу выяснить остальное.Constructor is Undefined issues
Спасибо за любую помощь, которую вы можете предоставить!
Driver класс, где я читаю и создания объектов (не включать остальную часть кода ниже этого) ошибка происходит в «Emp [0]» линии
import java.io.File;
import java.util.Scanner;
public class PayrollSystemTest2 {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Scanner input;
input = new Scanner(new File("EmployeePayrollInfo.txt"));
Employee[] Emp = new Employee[20];
while(input.hasNext())
{
String ID = input.nextLine();
if (ID.charAt(0) == 'S')
{
String first = input.nextLine();
String last = input.nextLine();
String ssn = input.nextLine();
Date DayOfBirth = new Date(input.nextInt(),input.nextInt(),input.nextInt());
double salary = input.nextDouble();
Emp[0] = new SalariedEmployee(first, last, ssn, DayOfBirth, ID);
}
SalariedEmployee подкласс
public class SalariedEmployee extends Employee
{
private double weeklySalary;
// four-argument constructor
public SalariedEmployee(String first, String last, String ssn, Date DayOfBirth, String ID,
double salary)
{
super(first, last, ssn, DayOfBirth, ID); // pass to Employee constructor
setWeeklySalary(salary); // validate and store salary
} // end four-argument SalariedEmployee constructor
// set salary
public void setWeeklySalary(double salary)
{
double baseSalary;
if (salary >= 0.0)
baseSalary = salary;
else
throw new IllegalArgumentException(
"Weekly salary must be >= 0.0");
} // end method setWeeklySalary
// return salary
public double getWeeklySalary()
{
return weeklySalary;
} // end method getWeeklySalary
// calculate earnings; override abstract method earnings in Employee
@Override
public double earnings()
{
return getWeeklySalary();
} // end method earnings
// return String representation of SalariedEmployee object
@Override
public String toString()
{
return String.format("salaried employee: %s\n%s: $%,.2f",
super.toString(), "weekly salary", getWeeklySalary());
} // end method toString
} // end class SalariedEmployee
Снова, спасибо за любую помощь, которую вы можете предоставить.
Извините, что неточный комментарий был изначально четыре, и я изменил его на шесть без изменения комментария. Я не могу поверить, что не уловил недостающий аргумент. Извините за то, что потратил время, но большое спасибо за помощь! – user2774647
@ user2774647: Я бы полностью удалил комментарий - это не дает никакого дополнительного понимания, и подобные комментарии могут так легко устаревать. –
Я планирую сделать это, исходный код на самом деле пришел из книги, которую я сделал несколько недель назад, и мне нужны все комментарии в рамках моего задания. Теперь я просто играю со старым кодом, пытаясь выполнить с ним новые вещи, и просто не испортил старые комментарии. – user2774647