Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

0

Witam, tak jak w temacie wyskakuje mi taki błąd podczas kompilacji mam dwie klasy. Czy ktoś pomógł by mi to fixnąć?

1 kod

public class EmployeeTest {
    public static void main(String[] args) {
        // Wstawienie 3 obiektów do tablicy staff
        Employee[] staff = new Employee[3];

        staff[1] = new Employee("Jarosław Przybyła", 7500, 1982, 4, 26);
        staff[2] = new Employee("Janusz Karakuła", 2600, 1996, 6, 26);
        staff[3] = new Employee("Jan Kowalski", 3500, 1993, 12, 19);


        //Zwiększenie pensji wszystkich pracowników o 5%
        for (Employee e : staff) {
            e.raiseSalary(5);
        }


        //Drukowanie informacji o wszystkich obiektach

        for (Employee e : staff) {
            System.out.println("name: " + e.getName() + ".salary= " + e.getName() + ".hireDay= " + e.getHireDay());

        }
    }

}

2 kod.

import java.time.LocalDate;

class Employee {
    private String name;
    private double salary;
    private LocalDate hireDay;

    public Employee(String n, double s, int year, int month, int day) {

        name = n;
        salary = s;
        hireDay = LocalDate.of(year, month, day);
    }


    public String getName() {
        return name;
    }

    public double getSalary() {
        return salary;
    }

    public LocalDate getHireDay() {
        return hireDay;
    }

    public void raiseSalary(double byPercent) {
        double raise = salary * byPercent / 100;
        salary += raise;
    }
}


0

Tablice, jak pewnie wiesz, mają określoną długość i nie możesz upchnąć więcej elementów niż zadeklarowałeś. Druga informacja, która Ci się przyda, to ta, że tablice są indeksowane od 0. Czyli tablica o długości 2 ma indeksy 0, 1. Ten błąd oznacza, że próbujesz się odnieść do indeksu tablicy, który wykracza poza tą granicę.

int[] arr = new int[5];
arr[10] = ... // ArrayIndexOutOfBoundsException

Spróbuj go znaleźć sam :)

0

staff[0] = ...
staff[1] = ...
staff[2] = ...

super dzięki za szybką pomoc ;D

1 użytkowników online, w tym zalogowanych: 0, gości: 1