Prezados. Preciso associar o limite máximo de 05 dependentes por funcionário sendo que a idade limite do dependente é de 18 anos para FuncionarioTemporario e 21 anos para FuncionarioConcursado. Não consigo encontrar o erro no meu código!
Abaixo segue a Classe mãe "Funcionario", a subclasse "FuncionarioConcursado" e a classe "Dependente". O MAIN vou postar em forma de resposta.
insira seu código aqui
import java.util.ArrayList;
public class Funcionario {
public String codigoFuncionario;
public double salarioFuncionario;
public ArrayList<Dependente> dependentes = new ArrayList<Dependente>();
public boolean associaDependente(Dependente d) {
if (dependentes.size() > 5) {
System.out.println("Há um limite de 05 dependentes por funcionário");
return false;
} else {
dependentes.add(d);
}
return true;
}
public int obtemQuantidadeDependentesNaIdadeLimite(int idadeDependente) {
int totalIdade = 0;
for (Dependente d : this.dependentes) {
if (totalIdade < idadeDependente) {
totalIdade++;
}
}
return totalIdade;
}
}
public class FuncionarioConcursado extends Funcionario {
public int anosContratacao;
public FuncionarioConcursado(String codigoFuncionario, double salarioFuncionario, int anosContratacao) {
this.codigoFuncionario = codigoFuncionario;
this.salarioFuncionario = salarioFuncionario;
this.anosContratacao = anosContratacao;
}
public double calculaSalario() {
return this.salarioFuncionario
+ (this.anosContratacao * 200.0 + this.obtemQuantidadeDependentesNaIdadeLimite(21) * 100.0);
}
public void imprime() {
System.out.println("FUNCIONÁRIO CONCURSADO");
System.out.println("Código do funcionário: " + this.codigoFuncionario);
System.out.println("Anos contratação: " + this.anosContratacao);
int somaDependentes = 0;
for (int i = 0; i < this.dependentes.size(); i++) {
if (this.dependentes.get(i) .estaNaIdadeLimite(21) == true) {
somaDependentes ++;
}
}
System.out.println("Dependentes dentro da idade limite: " + this.obtemQuantidadeDependentesNaIdadeLimite(21));
System.out.println("Salário total: " + calculaSalario());
}
}
public class Dependente {
public int idadeDependente;
public boolean estaNaIdadeLimite(int idade) {
if (this.idadeDependente == idade) {
return true;
} else {
return false;
}
}
}