2
respostas

Quero imprimir o boolean dizendo se a posição está ocupada ou não.

Olá eu fiz o exercício e teoricamente não percebi nenhum erro, porém queria imprimir se a posição do array está ou não ocupada. Segue meu código:

class Empresa {

    String nomeEmpr;
    String cnpj;
    Funcionario[] funcionarios;

    int livre = 0;

    void adiciona(Funcionario f) { // adiciona fn dentro da posição array.

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

    }

    boolean contem(Funcionario f) {

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

            if(f == this.funcionarios[i]) {
                return true;
            }
        }

        return false;
    }
void mostraInformacoesEmpresa() {

        System.out.println();
        System.out.println("Nome da empresa: " + nomeEmpr );
        System.out.println("CNPJ: " + cnpj );
        System.out.println();

    }

    void mostraTodasInformacoesFuncionario() {

        for(int i = 0; i < this.funcionarios.length; i++) {
            if(this.funcionarios[i] == null) continue;
            System.out.println("Funcionario na posicao: " + i);
            this.funcionarios[i].mostra();            
        }

    }
class Funcionario {

    String nomeFunci;
    String rg;
    String funcao;
    double salario;
    double valeRefei;
    Data dataDeEntrada;

    double salarioMaisVale() {

        return this.salario + this.valeRefei;
    }

    double ganhoPorAno() {

        return this.salario * 12;

    }

    void mostra() {

        System.out.println();
        System.out.println("Nome do Funcionario: " + nomeFunci);
        System.out.println("RG: " + rg);
        System.out.println("Funcao: " + funcao);
        System.out.println("Salario: " + salario);
        System.out.println("Vale: " + valeRefei);
        System.out.println("Salario + vale: " + salarioMaisVale());
        System.out.println("Ganho total por ano: " + ganhoPorAno());
        System.out.println("Data de entrada: " + dataDeEntrada.getFormatada);
        System.out.println();
    }
}
class Data {

    String getFormatada;

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

        this.getFormatada = dia + "/" + mes + "/" + ano;
    }

}

class TestaEmpresa {

    public static void main(String[] args){

        Empresa empresa = new Empresa(); // cria new empresa
        empresa.nomeEmpr = "Granada Interprise";
        empresa.cnpj = "654987321-147";

        empresa.funcionarios = new Funcionario[10]; // cria array Funcionario

            Funcionario f1 = new Funcionario(); // cria novo funcionario.
            f1.nomeFunci = "Mauricio";
            f1.rg = "123465789";
            f1.funcao = "Motorista";
            f1.salario = 4500;
            f1.valeRefei = 800;
            f1.dataDeEntrada = new Data(); // Criando new Data().
            f1.dataDeEntrada.getFormatada(11, 3, 1968);
            empresa.adiciona(f1); //addiciona f1 em empresa

            Funcionario f2 = new Funcionario();
            f2.nomeFunci = "Felipe";
            f2.rg = "789456123";
            f2.funcao = "Gerente";
            f2.salario = 6550;
            f2.valeRefei = 800;
            f2.dataDeEntrada = new Data(); // Criando new Data().
            f2.dataDeEntrada.getFormatada(20, 10, 2014);
            empresa.adiciona(f2);
    empresa.mostraInformacoesEmpresa();
            empresa.mostraTodasInformacoesFuncionario();

    }

}
2 respostas

Bom dia Pablo, como o seu array é de objetos Funcionario, pode comparar com null a posição

Realmente!!