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

Dúvida no exercício 6

Pessoal, estou tentando fazer o exercício de forma mais completa, como eu posso resolver essa questão de tirar a String na dataAdimissao e passar a utilizar a minha Classe Data?

Não estou conseguindo pensar a forma de como utilizar o método recebeData na dataAdimissao e dataDemissao

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

    void recebeData(int dia, int mes, int ano){
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }
}
public class Funcionario {
    String nome;
    double salario;
    String dataAdmissao;
    String dataDemissao;
    String RG;

    void admissao(String dataAdmissao){
        this.dataAdmissao = dataAdmissao;
        System.out.println("O funcionário: " + nome + " doi admitido no dia: " + dataAdmissao);
    }

    void demissao(String dataDemissao){
        this.dataDemissao = dataDemissao;
        System.out.println("O funcionário: " + nome + " doi admitido no dia: " + dataDemissao);
    }

    void recebeSalario(String dataRecebimento){
        System.out.println(nome + " rebeu " + salario + " dia " + dataRecebimento);
    }

    void recebeDecimoTerceiro(int mesesTrabalhados){
        this.salario = (salario / 12) * mesesTrabalhados;
        System.out.println("O funcionario " + nome + " receberá um décimo terciro salário no valor de: R$ " + this.salario);
    }

    void recebeAumento(double valorAumento){
        this.salario += valorAumento;
        System.out.println(nome + " recebeu um aumento de R$: " + valorAumento);
        System.out.println("Seu salário agora é de: R$ " + salario);
    }

    double ganhoAnual(){
        this.salario = salario * 12;
        return salario;
    }
}
2 respostas
solução!

Felipe, vou colar aqui a minha solução desta questão.

Você pode se basear nela.

Apenas um detalhe, todas as funções que tratam a data, você deve colocar na class Data e tirar da classe Funcionário.

Troque também

    String dataAdmissao;
    String dataDemissao;

por

    Data dataAdmissao;
    Data dataDemissao;
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 converteData () {
                String dt_trab_dia, dt_trab_mes ;
                if (this.dia < 10){
                    dt_trab_dia = "0" + this.dia;
                } else {
            dt_trab_dia = "" + this.dia;                    
                }
                if (this.mes < 10){
                    dt_trab_mes = "0" + this.mes;
                } else {
            dt_trab_mes = "" + this.mes;                    
                }
                String dt_trab_ano = "" + this.ano;
                return (dt_trab_dia + "/" + dt_trab_mes + "/" + dt_trab_ano);
            }            

}

na TestaFuncionario:

        f1.dataAdmissao = new Data();
        f1.dataAdmissao.dia = 1;
        f1.dataAdmissao.mes = 1;
        f1.dataAdmissao.ano = 2015;

        f1.dataDemissao = new Data();
        f1.dataDemissao.dia = 0;
        f1.dataDemissao.mes = 0;
        f1.dataDemissao.ano = 0;

        f1.dataNascimento = new Data(); 
        f1.dataNascimento.dia = 12;
        f1.dataNascimento.dia = 12;
        f1.dataNascimento.dia = 1990;

na Funcionário, método mostra()

        System.out.println("Nascimento:     " + this.dadosCadastrais.dataNascimento.converteData());
        System.out.println("Admissao:       " + this.dataAdmissao.converteData());

Opa, valeu amigão! Consegui implementar desta forma! Muito obrigado, consegui esclarecer melhor agora!