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

Duvida exercicio 4 aula 5

    //Teste empresa
        class TestaEmpresa {

            public static void main (String[] args) {
                Empresa empresa = new Empresa();
                empresa.getFuncionario(10);

Ok, compilou Rodando Testa Funcionario ok Mas quando tento rodar Testa empresa ele traz erro

Exception in thread "main" java.lang.NullPointerException
        at Empresa.getFuncionario(Funcionarios.java:25)
        at TestaEmpresa.main(Funcionarios.java:139)
3 respostas

Opa, vc chegou a olhar a classe Funcionarios na linha 25? Nela tem o motivo do NPE :). Caso não consiga resolver, posta a classe Funcionarios aqui.

Oi Wander, tudo bom?

Neste TestaEmpresa você está criando apenas a empresa. O atributo empregados precisa ser instanciado também:

public class Empresa {
    private Funcionario[] empregados = new Funcionario[10];

// resto da classe

Além disso, precisamos instanciar todas as posições do array. Para isso, vamos precisar de um método que adicione funcionários em uma posição vazia:

public class Empresa{
// outros métodos e atributos
    public void adicionaFuncionario(Funcionario funcionario){
    for(int i = 0; i < empregados.length; i++){
        if(empregados[i] == null){
            this.empregados[i] = funcionario;
            return;
        }
    }
}

Agora sim, podemos criar nosso funcionario, adicioná-lo no nosso array e acessar pelo getFuncionario():

public static void main (String[] args) {
                Empresa empresa = new Empresa();
        Funcionario funcionario1= new Funcionario();
        Funcionario funcionario2= new Funcionario();
        //declaração de todos os funcionários...
        empresa.adicionaFuncionario(funcionario10);
        //após adicionar todos os funcionários, podemos pegar com o         método `getFuncionario`
                empresa.getFuncionario(10);
solução!

Opa Alberto e André

Antes de mais nada obrigado por responderem.

Na verdade esta é a sequencia do exercício pediram para criar o construtor que geraria a array empregados. Justamente ele que esta na linha 25.

Segue as linhas : 24 public Funcionario getFuncionario(int posicao) { 25 return this.empregados[posicao]; 26 }

Note que usei getFuncionario é isso mesmo ? Não sei como criar um set para ele Segue :

class TestaEmpresa { public static void main (String[] args) { Empresa empresa = new Empresa(); empresa.getFuncionario(10);

Como comentei o código compilou normal e o TestaFuncionario rodou normal. Erro apenas no TestaEmpresa

Obrigado

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