Olá pessoal, por favor podem me ajudar, no exercicio 3 de arrays no Primeiro Passos com Java ao executar a classe TestaEmpresa, surge o seguinte erro:
Exception in thread "main" java.lang.ArrayIndexOutofBoundsException: 10
at Empresa.adicionaFuncionario(Empresa.java:10)
at TestaEmpresa.main(TestaEmpresa.java:8)
Alguém sabe me dizer porque ocorre este erro?
Abaixo seguem as classes que criei:
class Empresa{
String nome;
int cnpj;
Funcionario[] empregado;
void adicionaFuncionario(Funcionario func){
for(int i=0; i<= this.empregado.length; i++){
if(this.empregado[i] == null){
this.empregado[i]= func;
}
}
}
void mostraEmpregado(){
for (int i=0; i< this.empregado.length; i++){
System.out.println("Funcionário na posicao:" + i);
System.out.println("R$" + this.empregado[i].salario);
}
}
}
class Funcionario{
String nome;
String departamento;
double salario;
String data;
String rg;
void recebeAumento (double valor){
this.salario += valor;
}
double calculaGanhoAnual (){
return salario *12;
}
void descontos (double valor){
this.salario -= valor;
}
void mostra(){
System.out.println("Nome:" + this.nome);
System.out.println("Departamento:" + this.departamento);
System.out.println("Salario:" + this.salario);
System.out.println("Data de Admissao:" + this.data);
}
}
class TestaEmpresa {
public static void main (String[] args){
Empresa emp = new Empresa();
emp.empregado = new Funcionario[10];
Funcionario f1 = new Funcionario();
f1.salario = 3500;
emp.adicionaFuncionario(f1);
Funcionario f2 = new Funcionario();
f2.salario = 2200;
emp.adicionaFuncionario(f2);
Funcionario f3 = new Funcionario();
f3.salario = 1500;
emp.adicionaFuncionario(f3);
}
}