У меня есть класс Employee:
public class Employee{
private String firstName;
private String lastName;
private double salary;
private double rate;
public Employee(String firstName, String lastName, double salary){
this.firstName = firstName;
this.lastName = lastName;
this.salary = salary;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public double getSalary(){
return salary/1000;
}
public double setSalaryIncrease(double rate){
if ((rate-1)*100>=0){
this.rate = ((rate-1)*100);
return this.rate;
}
else{
this.rate = -((rate-1)*100);
return this.rate;
}
}
public String toString(){
return firstName+" "+lastName+": salary is "+String.format("%.0f", salary/1000)+"K, annual raise is "+String.format("%.0f", rate)+"%";
}
}
, а в моем основном классе
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
Employee employee = new Employee(sc.next(), sc.next(), sc.nextDouble());
employee.setSalaryIncrease(sc.nextDouble());
System.out.println(employee);
}
}
}
Например, если у меня есть список входных данных, например
Mohammad Ali 24000.0 1.11
Steve Gates 36000.0 1.05
Michael Jordan 71000.0 1.07
Я хочу, чтобы он печатался только после того, как все 3 входа были отсканированы.Тем не менее, я заканчиваю тем, что печатаю каждую строку после того, как каждая строка отсканирована, то есть
Мохаммед Али 24000.0 1.11
Мохаммед Али: зарплата составляет 24 тыс., Годовой рост составляет11%
Стив Гейтс 36000,0 1,05
Стив Гейтс: оклад 36K, годовой прирост 5%
Как мне изменить метод toString (), чтобы он выводил всю информацию целиком после чтения всех входных данных, не внося изменений в мой основной класс?