Bom dia pessoal,
Quando utilizo o método contem(), o mesmo não retorna "false" ou "true". Quando é passado um funcionário que não existe, o programa não compila e retorna o seguinte erro :
TesteEmpresa.java:37: error: cannot find symbol
citel.contem(desenv10);
^
symbol: variable desenv10
location: class TesteEmpresa
1 error
Quando é passado um funcionário existente o programa compila mas não é retornado "true".
Gostaria de saber porque isso acontece. O certo não era pra ser retornado true ou false? Segue código abaixo:
obs: Utilizo java 1.8
Classe Empresa
public class Empresa{
String nome;
String cnpj;
Funcionario funcionarios[];
int cont_funcionario = 0;
void adiciona(Funcionario funcionario){
this.funcionarios[this.cont_funcionario] = funcionario;
this.cont_funcionario++;
}
void mostraTodasAsInformacoes() {
for (int i = 0; i < this.cont_funcionario; i++) {
if(funcionarios[i] == null) continue;
System.out.println("\n\nFuncionário na posição: " + i);
this.funcionarios[i].mostra();
}
}
boolean contem(Funcionario f) {
for (int i = 0; i < this.cont_funcionario; i++) {
if (f == funcionarios[i]) {
return true;
}
}
return false;
}
}
Classe TesteEmpresa
public class TesteEmpresa{
public static void main (String [] args){
Empresa citel = new Empresa();
citel.funcionarios = new Funcionario[20];
Funcionario desenv1 = new Funcionario();
desenv1.data = new Data();
desenv1.nome = "Roberto";
desenv1.salario = 15000;
desenv1.data.preencheData(1,1,2004);
citel.adiciona(desenv1);
Funcionario desenv2 = new Funcionario();
desenv2.data = new Data();
desenv2.nome = "Rafa";
desenv2.salario = 13000;
desenv2.data.preencheData(6,10,2006);
citel.adiciona(desenv2);
Funcionario desenv3 = new Funcionario();
desenv3.data = new Data();
desenv3.nome = "Israel";
desenv3.salario = 10000;
desenv3.data.preencheData(6,6,2009);
citel.adiciona(desenv3);
citel.contem(desenv1);
}
}