Olá pessoal,
Estava terminando o exercício 6 da aula 4 (sobre uso de arrays) e estou tendo problemas com o resultado do metodo contem().
Acontece que mesmo eu criando um novo objeto e fazendo um dos endereços do vetor apontar pra ele, mesmo assim o resultado do método é false.
Eu inclusive testei as referencias antes, pra ver se elas apontavam para o mesmo objeto.
Segue o código:
public class Empresa {
String nome;
String cnpj;
Funcionario [] equipe = new Funcionario [5];
int livre = 0;
void adicionar (Funcionario f1){
this.equipe [livre] = f1;
livre++;
}
void mostraSalario(){
for (int i = 0; i < this.equipe.length; i++){
System.out.printf("Funcionario na posicao %d \n", i);
System.out.printf("Salario: %.2f", this.equipe[i].salario);
System.out.printf("\n\n\n");
}
}
void mostraTudo (){
for (int i = 0; i < equipe.length; i++){
this.equipe[i].mostra();
System.out.printf("\n\n\n");
}
}
boolean contem (Funcionario f1) {
for(int i = 0; i > this.equipe.length; i++){
if (this.equipe[i] == f1){
return true;
}
}
return false;
}
}// fim da classe
Executável:
public class TestaEmpresa {
public static void main(String[] args) {
Empresa emp = new Empresa ();
for (int i = 0; i < emp.equipe.length; i++){
Funcionario f1 = new Funcionario();
emp.adicionar(f1);
emp.equipe[i].salario = i*100;
}
Funcionario fun = new Funcionario();
emp.equipe[4] = fun;
boolean teste = emp.contem(fun);
System.out.println(teste);
if (emp.equipe[4] == fun){
System.out.println("variaveis iguais");
}
if (teste == true){
System.out.println("Funcionario esta na empresa");
} else {
System.out.println("Funcionario nao trabalha na empresa");
}
}// fim de main
}//fim da classe
E essa é a saída do programa:
false
variaveis iguais
Funcionario nao trabalha na empresa
Observem que mesmo eu testando se emp.equipe [4] == fun (e o resultado mostra que elas são iguais), o resultado do método ainda é false. O que foi que eu fiz de errado?
Grato desde já.