Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Este método também daria certo?

Galera, eu queria saber se o meu método "contem" está correto e se poderia ser usado como aquele mostrado pelo exercício.

public class Empresa {

    public String nome;
    public String cnpj;
    Funcionario[] empregados;
    int vazio = 0;

    public void adicionar(Funcionario f) {
        this.empregados[this.vazio] = f;
        this.vazio++;

    }

    public void mostraEmpregados() {
        for (int i = 0; i < this.vazio; i++) {
            System.out.println("Funcionario número " + i);
            System.out.println("O salario do funcionário é de  R$" + empregados[i].salario);
        }
    }

    public void mostraTodasAsInformacoes() {
        for (int i = 0; i < this.vazio; i++) {
            System.out.println("Funcionario " + i);
            this.empregados[i].mostra();
        }
    }

    public boolean contem(Funcionario f) {
        boolean teste = false;
        for (int i = 0; i < this.vazio; i++) {
            if (f == this.empregados[this.vazio]) {
                teste =  true;
            } else {
                teste =  false;
            }
        }
        return teste;
    }
}
2 respostas
solução!

Oi Gustavo,

Pode ser utilizado sim, é uma implementação válida.

Daria pra deixar o código só um pouquinho mais enxuto fazendo com que ao invés de popular a variável teste, você já retornasse true para não precisar continuar procurando no array e desta forma não precisaria do else. Ficaria assim:

    public boolean contem(Funcionario f) {
        boolean teste = false;
        for (int i = 0; i < this.vazio; i++) {
            if (f == this.empregados[this.vazio]) {
                return  true; // Se achou já sai do método
            } 
        }
        // Só cai aqui se não achou
        return teste;
    }

Abraço!

.