1
resposta

Dúvida no Ex.6 da Aula 4 -Arrays

Alguém poderia por gentileza verificar o que há de errado com o meu código ?

class Data{
    int dia;
    int mes;
    int ano;

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

    String getDataFormatada(){
        return dia + "/" + mes + "/" + ano;        
    }

}


class Funcionario{

    String nome;
    String departamento;
    String rg;
    Data dataDeEntrada;
    double salario;

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

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


   void mostra() {

        System.out.println("Nome: " + this.nome);
        System.out.println("RG: " + this.rg);
        System.out.println("Departamento: " + this.departamento);
        System.out.println("Salario atual: " + this.salario);
        System.out.println("Ganho anual: " + this.calculaGanhoAnual());
        System.out.println("Data de entrada: "+ this.dataDeEntrada.getDataFormatada());
        }

}

class TestaFuncionario {    

    public static void main(String[] args){
        Funcionario f1 = new Funcionario();
        f1.nome = "Leandro Souza";
        f1.rg = "0000000";
        f1.departamento = "Adm";
        f1.salario = 1000;
        f1.recebeAumento(50);

        f1.dataDeEntrada = new Data();
        f1.dataDeEntrada.preencheData(7, 7, 2016);

        f1.mostra();

        Funcionario f2 = new Funcionario();
        f2.nome = "Souza";
        f2.rg = "0000000";
        f2.departamento = "Adm";
        f2.salario = 1000;
        f2.recebeAumento(50);

        f2.dataDeEntrada = new Data();
        f2.dataDeEntrada.preencheData(7, 7, 2016);

        f2.mostra();

    }

}

class Empresa {
    String nomeEmpresa;
    String cnpj;
    Funcionario[] empregados = new Funcionario[1];
    int livre = 0;

    void adiciona(Funcionario f) {
        this.empregados[this.livre] = f;
        this.livre++;
    }

    void mostraTodasAsInformacoes(){
        for (int i = 0; i < this.livre; i++){
            System.out.println("Funcionario na posição: " + i);
            this.empregados[i].mostra();

        }
    }

    boolean contem(Funcionario f1) {
            for (int i = 0; i < this.livre; i++) {
                if (f1 == this.empregados[i]) {
                    return true;
                }
            }
            return false;
    }



}


class TesteEmpresa {

    public static void main(String[] args){
    Empresa empresa = new Empresa();
    empresa.empregados = new Funcionario[1];

    Funcionario f1 = new Funcionario();
    f1.salario = 1000;
    f1.dataDeEntrada = new Data();
    empresa.adiciona(f1);
    empresa.contem(f1);

    Funcionario f2 = new Funcionario();
    f2.salario = 1700;
    f2.dataDeEntrada = new Data();
    empresa.adiciona(f2);
    empresa.contem(f2);

    empresa.mostraTodasAsInformacoes();

    Funcionario f1 = new Funcionario();
        System.out.println(empresa.contem(f1));

    }

}
1 resposta

Olá Leandro, tudo bom?

No seu código você está criando um array de tamanho 1. Tente aumentar o tamanho do seu array para algum número maior ou igual a 2:

new Funcionario[10]

Além disso, de uma olhada na sua classe pois você está instanciando seu array na própria classe Empresa e no main TestaEmpresa

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