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

Meu código não exibe nada

Meu código não exibe os funcionários criados.

public class Empresa {
    String nome;
    int cnpj;
    Funcionario[] funcionarios;
    int livre = 0;

    void adicionar(Funcionario f) {
        this.funcionarios[this.livre] = f;
        this.livre++;
    }
}

public class TestaEmpresa {
    public static void main(String[] args) {
        Empresa neowix = new Empresa();
        neowix.funcionarios = new Funcionario[10];

        Funcionario f1 = new Funcionario();
        f1.salario = 1000;
        neowix.adicionar(f1);

        Funcionario f2 = new Funcionario();
        f1.salario = 2000;
        neowix.adicionar(f2);

        neowix.funcionarios[0].mostra();
        neowix.funcionarios[1].mostra();   
    }  
}
4 respostas
public class Funcionario {
    String nome;
    String departamento;
    double salario;
    double ganhoAnual;
    Data dataDeEntrada;

    void recebeAumento(double valor) {
        this.salario += valor; 
    }

    public double calculaGanhoAnual() {
        return this.salario * 12;
    }

    void mostra() {
        System.out.println("Nome: " + this.nome);
        System.out.println("Departamento: " + this.departamento);
        System.out.println("Salário: " + this.salario);
        System.out.println("Ganho anual: " + this.calculaGanhoAnual());
        System.out.println("Data de entrada: " + this.dataDeEntrada.getFormatada() + "\n");

    }

}

public class Data {
    int dia, mes, ano;

    void preencheData(int dia, int mes, int ano) {
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

    String getFormatada() {
        return this.dia + "/" + this.mes + "/" + this.ano;
    }

}

Olá Marcelo. Tudo bom?

Acredito que você esteja tendo problemas com NullPointerException em neowix.funcionarios[0].mostra(); por não ter instanciado sua classe Data e populado a dataDeEntrada dos seus funcionarios.

Tente popular seus funcionarios completamente:

Funcionario f1 = new Funcionario();
    //atribua valores a todos os atributos do seu funcionario
    f1.salario = 1000;
    Data data = new Data();
    data.preencheData();//preencha a data
    f1.dataDeEntrada = data;//atribua uma data a seu funcionario
        neowix.adicionar(f1);

Lembre-se que quando criamos um atributo de referência, precisamos instanciá-lo também =)

Espero ter ajudado, qualquer dificuldade, comente aqui relatando seus erros.

solução!

André, descobri o que era e foi um erro bobo. Estou usando o Netbeans e estava com duas classes main e ele estava usando o main que não tinha nenhum funcionário. Coloquei no bloco de notas e 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