Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como chamar o método adiciona? (Exercício 2)

No código abaixo, se faz necessário chamar o método "adiciona", na classe do main. Porém, é necessário tirar a condição "(funcionario==null)" do método imprimeEmpresa?

class Empresa{

    FuncionarioEmpresaa[] funcionarios;
    String nome, cnpj;

    int livre = 0;

    void adiciona(FuncionarioEmpresaa f) {
        this.funcionarios[this.livre] = f;
        this.livre++;
    }

    void imprimeEmpresa(){

            System.out.println(" CNPJ da Empresa........................> " + cnpj);
            System.out.println(" Nome da Empresa........................> " + nome);


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

                System.out.println(" ");

                FuncionarioEmpresaa funcionario = this.funcionarios[i];
                if(funcionario==null) continue;
                System.out.println(" Nome do Funcionário.................> " + funcionario.nome);
                System.out.println(" Data da entrada do funcionário......> " + funcionario.dataDeEntrada.mostraData());
                System.out.println(" Nome do departamento................> " + funcionario.departamento);
                System.out.println(" RG do funcionário...................> " + funcionario.rg);

                System.out.println(" Salário do funcionário..............> " + funcionario.salario);

            }
    }

}

class FuncionarioEmpresaa{

    String nome;
    String departamento;
    double salario, salarioAnual;
    String rg;

    Data dataDeEntrada;

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

    double calculaGanhoAnual(){

        return salarioAnual = this.salario * 12;
    }

}


class Data{


    int dia, mes, ano;

    void preencheData (int dia, int mes, int ano){

        this.dia = dia;
        this.mes = mes;
        this.ano = ano;

    }

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

}

Classe Main

class TestaFuncionarioEmp{

    public static void main(String[] args) {


        Empresa f1 = new Empresa();

        f1.funcionarios = new FuncionarioEmpresaa[3];        
        f1.funcionarios[0] = new FuncionarioEmpresaa();


        f1.cnpj="57.627.876/0001-80";
        f1.nome="Vetor Aula Ltda";
        f1.funcionarios[0].nome = "Teotonio Novaes";
        f1.funcionarios[0].dataDeEntrada = new Data();
        f1.funcionarios[0].dataDeEntrada.preencheData(05,10,2017);

        f1.funcionarios[0].departamento = "Testando Department";

        f1.funcionarios[0].rg = "26.104.65-X";
        f1.funcionarios[0].salario = 100.00;
        f1.funcionarios[0].recebeAumento(50);

        f1.funcionarios[1] = new FuncionarioEmpresaa();

        f1.funcionarios[1].nome = "Jenivalson Valdisney Tavraerss";
        f1.funcionarios[1].dataDeEntrada = new Data();
        f1.funcionarios[1].dataDeEntrada.preencheData(05,12,2017);
        f1.funcionarios[1].departamento = "Labs Department";
        f1.funcionarios[1].rg = "11.765.65-5";
               f1.funcionarios[1].salario = 280.00;
               f1.funcionarios[1].recebeAumento(23);

        f1.imprimeEmpresa();

    }    
}
1 resposta
solução!

Não há necessidade de remover porque quando você cria o array ele vai estar inicializado com os valores nulos, ainda que você chame o adicionar, pode ser que você não preencha o total de espaços, o que geraria um nullpointer.