3
respostas

Array - Exercício 2 - Por favor, alguém pode me ajudar com o erro no exercício 2

class FuncionarioEx2 {
        String nome;
        String depto;
        double salario;
        Data datEntradaBanco;
        String  rg;
}

class Data {
      int dia;
      int mes;
      int ano;
}

class Empresa {
      String nomeEmpresa;
      String cnpj;
      FuncionarioEx2[] funcionarios;

      void mostraEmpresa() {
             System.out.println(this.nomeEmpresa);
             System.out.println(this.cnpj);
      }

      void adicionar(FuncionarioEx2 f) {
             for(int i = 0; i < this.funcionarios.length; i++) {
                  FuncionarioEx2 func = this.funcionarios[i];
                  if(func != null) continue;
                  this.func[i] = new FuncionarioEx2();
                   this.funcionarios[i] = f;
      }

         void mostraDadosFunc() {
             for(int i = 0; i < this.funcionarios.length; i++) {
                  FuncionarioEx2 func = this.funcionarios[i];
                  if(func == null) continue;
                  System.out.println("Nome: " + func.nome);
                  System.out.println("Depto: " + func.depto);
                  System.out.println("Salario:" + func.salario);
                  System.out.println("RG: "     + func.rg);
           }
         }

}

class TesteFuncionario {
    public static void main(String[] args) {
         Empresa emp = new Empresa();
         emp.nomeEmpresa = "Softwork";
         emp.cnpj = "12345678901";
         emp.mostraEmpresa();

         emp.funcionarios = new FuncionarioEx2[10];
         for(int i = 0; i < emp.funcionarios.length; i++) {
             if(emp.funcionarios[i] == null) continue;
              System.out.println("Nome: " + emp.funcionarios.nome);

         emp.f = new FuncionarioEx2();
         emp.f.nome = "Ricardo";
         emp.f.depto = "Informatica";
         emp.f.salario = 10000.0;
         emp.f.rg       = "123456";
         adicionar(f);          

         emp.f = new FuncionarioEx2();
         emp.f.nome = "Cida";
         emp.f.depto = "Bancaria";
         emp.f.salario = 4500.0;
         emp.f.rg       = "9876543";
         adicionar(f);          
         emp.mostraDadosFunc();
    }
}

Erro de compilação: C:\CURSOS\ALURA\Java I Primeiros passos\04 - Arrays>javac FuncionarioEx2.java FuncionarioEx2.java:33: error: illegal start of expression void mostraDadosFunc() { ^ FuncionarioEx2.java:33: error: ';' expected void mostraDadosFunc() { ^ FuncionarioEx2.java:73: error: reached end of file while parsing } ^ 3 errors

Por favor, alem do erro voces podem verificar se o que foi incluido no metodo adicionar e mostraDadosFunc esta correto. Obrigado

3 respostas

Olá Ricardo,

no método adicionar ficou faltando fechar a chave do for:

void adicionar(FuncionarioEx2 f) {
             for(int i = 0; i < this.funcionarios.length; i++) {
                  FuncionarioEx2 func = this.funcionarios[i];
                  if(func != null) continue;
                  this.func[i] = new FuncionarioEx2();
                   this.funcionarios[i] = f;
}

Pelo que vi você tem a função mostraDadosFunc() dentro da função adicionar(FuncionarioEx2 f);

Usa assim:

     void adicionar(FuncionarioEx2 f) {
             for(int i = 0; i < this.funcionarios.length; i++) {
                  FuncionarioEx2 func = this.funcionarios[i];
                  if(func != null) continue;
                  this.func[i] = new FuncionarioEx2();
                  this.funcionarios[i] = f;
            }
      }

      void mostraDadosFunc() {
          for(int i = 0; i < this.funcionarios.length; i++) {
                  FuncionarioEx2 func = this.funcionarios[i];
                  if(func == null) continue;
                  System.out.println("Nome: " + func.nome);
                  System.out.println("Depto: " + func.depto);
                  System.out.println("Salario:" + func.salario);
                  System.out.println("RG: "     + func.rg);
          }
      }

Verifica e qualquer coisa da um grito!

Boa galera!!!