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

Jaja I - Exercicio 3 Arrays - Problema com a data de entrada do funcionário.

Olá Estou com um probleminha para atribuir a data de emtrada do novo funcionario no exercicio 3, segue emu codigo caso alguem tenha disponibilidade para dar uma olhada:

class Funcionario1{
        String nome;
        String departamento;
        double salario;
        Data dataDeEntrada;
        String rg;
        Empresa empresa;


        void recebeAumento(double valor){
            this.salario += valor;
        }
        double calculaGanhoAnual(){
            return this.salario * 12;
        }

        void mostra(){

                System.out.println("Empresa        : "+this.empresa.nomeDaEmpresa);
                System.out.println("Funcionario    : "+this.nome);
                System.out.println("Deparatamento  : "+this.departamento);
                System.out.println("Salario        : R$ "+this.salario);
                System.out.println("Data de Entrada: "+this.dataDeEntrada.mostraData());
                System.out.println("RG             : "+this.rg);
                System.out.println("Ganho Anual    : R$ "+this.calculaGanhoAnual());

        }

    }

class Empresa {

    String nomeDaEmpresa;
    String cnpj;
    String telefone;
    Funcionario1[] funcionarios;
    int livre = 0;

    void adicionarFuncionarios (Funcionario1 f){
        this.funcionarios[this.livre] = f;
        this.livre++;

    }

}

class Data {

    int dia;
    int mes;
    int ano;

    void prencheData (int d, int m, int a){
        this.dia = d;
        this.mes = m;
        this.ano = a;

    }

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

}


class TestaFuncionario {

    public static void main(String[] args) {


        Empresa empresa = new Empresa();
        Funcionario1 f1 = new Funcionario1 ();
        Funcionario1 f2 = new Funcionario1 ();

        empresa.funcionarios = new Funcionario1[10];

        empresa.nomeDaEmpresa = "Stefanine";
        empresa.cnpj = "109.000.000/000-98";
        empresa.telefone = "09738725-009988";

        empresa.funcionarios[0] = new Funcionario1();
        empresa.funcionarios[1] = new Funcionario1();

        f1.empresa = empresa;
        f1.nome = "Hugo";
        f1.departamento = "Vendas";
        f1.dataDeEntrada = new Data();
        f1.dataDeEntrada.mostraData(01,10,2016);
        f1.rg = "22.000.99-00";
        f1.salario = 100;
        f1.recebeAumento(50);
        empresa.adicionarFuncionarios(f1);
        empresa.funcionarios[0] = f1;

        f2.empresa = empresa;
        f2.nome = "Jose";
        f2.departamento = "Estagio";
        f2.dataDeEntrada = new Data();
        f2.dataDeEntrada.mostraData(01,02,2017);
        f2.rg = "00.000.99-00";
        f2.salario = 2000.0;
        f2.recebeAumento(1800);
        empresa.adicionarFuncionarios(f2);
        empresa.funcionarios[1] = f2;

        empresa.funcionarios[0].mostra();
        empresa.funcionarios[1].mostra();

    }
}

erros: required: no arguments found: int,int,int reason: actual and formal argument lists differ in length 2 errors

3 respostas
solução!

Olá José Carlos,

No momento que você está criando o seu funcionário e atribuindo os valores de seus atributos, você está passando a data de entrada do funcionário chamando o método mostraData e passando os parâmetros que a prencheData está esperando: Momento que você está atribuindo os valores

        f2.departamento = "Estagio";
        f2.dataDeEntrada = new Data();
        f2.dataDeEntrada.mostraData(01, 02, 2017);
        f2.rg = "00.000.99-00";
        f2.salario = 2000.0;

Sua classe Data:

class Data {

    int dia;
    int mes;
    int ano;

    void prencheData(int d, int m, int a) {
        this.dia = d;
        this.mes = m;
        this.ano = a;

    }

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

}

Basta trocar os nomes dos métodos na atribuição:

        f1.dataDeEntrada = new Data();
        f1.dataDeEntrada.prencheData(01, 10, 2016);
        f1.rg = "22.000.99-00";
        f1.salario = 100;

Espero ter ajudado.

Simple as that! Valeu Joel, tem hora que eu olho... olho e não enxergo... tipo o .Mr Magoo!

Sei bem como é rsrsrsrs