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

Não Consigo fazer o laço de repetição funcionar (iniciante em POO)

Não consigo fazer o loop para criar funcionários..

class Empresa{

    String Nome;
    String Cnpj;
    funcionario[] trabalhadores;
    int livre = 0;

    void adiciona(funcionario f){

        this.trabalhadores[this.livre] = f;
        this.livre++;

      }
}
class TestaEmpresa{

    public static void main (String[] args){

      Empresa Brasil = new Empresa();
      Brasil.trabalhadores = new funcionario[5];

        for(int i = 0;i<5;i++){

            funcionario f = new funcionario();
            f.salario = (1200.00*i);
            Brasil.adiciona(f);      
            Brasil.trabalhadores[i].mostra();

        }


    }
}
3 respostas
solução!

Opa fala Bruno, o seu loop está correto, oque está faltando é apenas você fechar o metodo que faz o loop kkkk, o metodo adiciona ta vendo? você não fechou ele. Está assim.

class Empresa{

    String Nome;
    String Cnpj;
    funcionario[] trabalhadores;
    int livre = 0;

    void adiciona(funcionario f){

        this.trabalhadores[this.livre] = f;
        this.livre++;


}

O certo é você fechar ele kkk ficando assim.

class Empresa{

    String Nome;
    String Cnpj;
    funcionario[] trabalhadores;
    int livre = 0;

    void adiciona(funcionario f){

        this.trabalhadores[this.livre] = f;
        this.livre++;


}
}// falto fechar

Opa Alisson, obg! No meu programa estava com a chave acho que esqueci na hora de passar para cá.

O Problema é que quando compilo o programa ele só cria um funcionário e dá aquele erro no main "java.lang.Nullpointerexception".

Um possível problema pode ser que você declarou os tipos como funcionario ao invés de Funcionario.

class Empresa {

    String Nome;
    String Cnpj;
    Funcionario[] trabalhadores;
    int livre = 0;

    void adiciona(Funcionario f) {

        this.trabalhadores[this.livre] = f;
        this.livre++;

    }
}

class Funcionario {

    public double salario;

    public void mostra() {
        System.out.println(this.salario);

    }

}

class TestaEmpresa {

    public static void main(String[] args) {

        Empresa Brasil = new Empresa();
        Brasil.trabalhadores = new Funcionario[5];

        for (int i = 0; i < 5; i++) {

            Funcionario f = new Funcionario();
            f.salario = (1200.00 * i);
            Brasil.adiciona(f);
            Brasil.trabalhadores[i].mostra();

        }

    }
}

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