1
resposta

Erro aula 4 exercício 4

Esta dando este erro e não sei como resolver

Exception in thread "main" java.lang.NullPointerException at javatestes.Empresa.mostraEmpregados(Javatestes.java:108) at javatestes.Javatestes.main(Javatestes.java:34)

meu código é o seguinte

class Javatestes {

     public static void main(String[] args) {

     Empresa empresa = new Empresa();
     empresa.empregado = new funcionario[10];
     funcionario f1 = new funcionario();
     funcionario f2 = new funcionario();

     f1.salario=(1000);
     f1.dataDeEntrada.adicionaData(15, 05, 2000);
     f1.nomeDoFuncionario=("Clérigo");
     f1.departamenteOndeTrabalha=("Sofrimento");
     f1.recebeAumento(1000);
     f1.RG=("2132103131");
     empresa.adicionar(f1);



     f2.salario=(2000);
     f2.dataDeEntrada.adicionaData(20,04,2000);
     f2.nomeDoFuncionario=("Guerreiro");
     f2.departamenteOndeTrabalha=("Batata");
     f2.recebeAumento(1000);
     f2.RG=("2132103131");
     empresa.adicionar(f2);

     empresa.empregado[1].mostra();
     empresa.empregado[0].mostra();
     empresa.mostraEmpregados();








    }
}
 class data{

    int mes, dd,aa;

      void adicionaData(int dd, int mes, int aa){
          this.dd=dd;
          this.mes=mes;
          this.aa=aa;
      }
      String getFormatada(){
          return this.dd+"/"+ this.mes+"/"+this.aa;


      }
 }


 class funcionario{

    String nomeDoFuncionario;
    String departamenteOndeTrabalha;
    double salario;
    String RG;
    data dataDeEntrada = new data();

    void recebeAumento (double valor){
        this.salario += valor;
    }
    double calculoGanhoAnual(){
        return this.salario*12;
    }  
    void mostra(){

     System.out.println("Nome do funcionário: "+this.nomeDoFuncionario);
     System.out.println("Área de trabalho: "+this.departamenteOndeTrabalha);
     System.out.println("Salário: "+this.salario);
     System.out.println("Salário anual de Roberto "+this.calculoGanhoAnual());
     System.out.println("Data de entrada na empresa: "+this.dataDeEntrada.getFormatada());
     System.out.println("-----------------------------------------------------");

    }
}

    class Empresa{

     String nomeDaEmpresa;
     String cnpj;
     funcionario [] empregado; 

        void adicionar (funcionario f){
            for(int i = 0; i < this.empregado.length; i++){
               if(this.empregado[i] == null){
            this.empregado[i] = f;
            break;
               }
            }
        } 

        void mostraEmpregados(){

           for(int i = 0; i < this.empregado.length; i++){

               System.out.println("Empregado esta na posição: " +i);
               System.out.println("Salario do empregado "+this.empregado[i].salario);

               }
              }

    }

Se alguém puder me ajudar agradeço.

1 resposta

Lendo rapidamente a questão, notei que o professor pede que você comente algumas linhas do código, assim como também alerta para um possível erro de NullPointException.

"Cuidado ao preencher esse método: alguns índices do seu array podem não conter referência para um Funcionario construído, isto é, ainda se referirem para null. Se preferir, use o for novo do java 5.0."

Tenta compilar fazendo essas alterações e retorna dizendo se deu certo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software