Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

array exercicio 6

class Empresa {
    Funcionario[] empregados;
    String cnpj;
    int livre = 0;

    void adiciona(Funcionario f) {
        this.empregados[this.livre] = f;
        this.livre++;
    };

    void mostraEmpregados() {
         for (int idx = 0; idx < this.livre; idx++) {
              System.out.println("Funcionário na posição: " + idx);

              System.out.println("idFuncionario: "  + this.empregados[idx].idFuncionario);                         
              System.out.println("departamento : "  + this.empregados[idx].departamento);                        
              System.out.println("nome         : "  + this.empregados[idx].nome);
              System.out.println("cpf          : "  + this.empregados[idx].cpf);              

              System.out.println("Salario R$" + this.empregados[idx].salario);

            };
    };
    void mostraTodasAsInformacoes() {
         for (int i = 0; i < this.livre; i++) {
              System.out.println("Funcionário na posição: " + i);
              this.empregados[i].mostra();
        };
    };  

    boolean contem(Funcionario f) {
            for (int i = 0; i < this.livre; i++) {
                if (f == this.empregados[i]) {
                    return true;
                };
            };
            return false;
        };        
};

----
class AtualizaEmpresa {
   public static void main (String[] args) {
       Empresa empresa = new Empresa();
       empresa.empregados = new Funcionario[10];

// assim
//     Funcionario f1 = new Funcionario();
//     f1.salario = 1000;
//     f1.dataEntrada = new DataFuncionario();
//     empresa.adiciona(f1);

//     Funcionario f2 = new Funcionario();
//     f2.salario = 1700;
//     f2.dataEntrada = new DataFuncionario();
//     empresa.adiciona(f2);
 //ou assim
       for (int idx = 0; idx < 5; idx++) {
           Funcionario f = new Funcionario();
           f.salario = (1000 + (idx * 100));
           empresa.adiciona(f);
      };


      Funcionario f = new Funcionario();
      f.idFuncionario = 1;
      int codFunc = f.idFuncionario;
      boolean existe = Empresa.contem(codFunc);
      if (existe) {
           System.out.println("Funcionario ja existe");
          } 
     else {
           System.out.println("Funmcionario não existe");
          };



//

//     empresa.empregados[0].mostra();
//     empresa.empregados[1].mostra();
       empresa.mostraEmpregados();
       empresa.mostraTodasAsInformacoes();
      };
};

código AtualizaEmpresa não esta compilando....

C:\Caca\Alura\CursoJava\JavaIPrimeirosPassos\programas>javac AtualizaEmpresa.java AtualizaEmpresa.java:27: error: incompatible types: int cannot be converted to Funcionario boolean existe = Empresa.contem(codFunc); ^ Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output 1 error

1 resposta
solução!

Boa tarde, Luis Carlos! Tudo bem, cara? =)

O problema que você está ocorrendo devido à um problema de tipos... Repare que na mensagem está escrito assim: int cannot be converted to Funcionario... Além disso, temos logo em seguida: boolean existe = Empresa.contem(codFunc);. Essa é exatamente a parte onde seu erro se encontra. =)

Repare que na declaração da classe Empresa, a função contem deve receber um funcionário, mas, ao invocá-la, você está passando codFunc, que é um int... Eis o problema!

Ao invés de fazer Empresa.contem(codFunc), você deveria escrever empresa.contem(f). =)

Espero ter ajudado, mas se ainda restar alguma dúvida não deixe de postar por aqui para que possamos auxiliá-lo em seus estudos. =)

Fábio