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

Como meu código ficou depois de muito trabalho. Dicas.

Bem, vou compartilhar meu código para quem deu uma empacada, assim como eu empaquei rsrs, tem umas dicas que dou no código que pode ajudar o entendimento. Como foi difícil pra mim resolvi compartilhar para ajudar os colegas. Desconsiderem alguns erros ortográficos de meus comentários no código.

class Funcionario8 { // Classe "Principal"
    Pessoa titular; // Apontando para classe Pessoa
    Pessoa identidade; // Apontando para classe Pessoa
    String setor;
    double salario;
    double aumento;
    double valeRefeicao;
    Data dataDeEntrada; // Apontando para classe Data

    double salarioMaisVale(){ // Metodo para calcular salario mais o vale. Sempre que for uma variavel () sem nada 
                              // E tem que ter return. Sempre que for uma variavel como String, double e int tem que ter o return.
        return this.salario + this.valeRefeicao;
    }

    double comAumento(){ // Metodo para calcular salario com aumento.

        return this.salario + this.aumento;
    }

    double salarioComAumentoMaisVale(){ // Metodo para calcular salario+vale+aumento.

        return this.salarioMaisVale() + this.comAumento();

    }

    double ganhoPorAno(){ // Metodo para calcular o ganho por ano.

        return this.salarioComAumentoMaisVale() * 12;

    }

    void mostra(){
            System.out.println();
        System.out.println("O Funciorio " + this.titular.nome + " com RG " + this.titular.rg);
            System.out.println();
        System.out.println("Trabalha no setor: " + this.setor);
            System.out.println();
        System.out.println("Tendo salario de " + this.salario + " e ticket alimentacao de " + this.valeRefeicao);
            System.out.println();
        System.out.println("Somando vale refeicao com o salario ganha por mes: " + this.salarioMaisVale());
            System.out.println();
        System.out.println(this.titular.nome + " recebeu um aumento de " + this.aumento + " passando seu salario para " + this.comAumento());
            System.out.println();
        System.out.println("Depois que passou a receber o aumento e somado ao vale refeicao " + this.titular.nome + " passou a receber por mes: " + this.salarioComAumentoMaisVale());
            System.out.println();
        System.out.println(this.titular.nome + " ganha por ano " + this.ganhoPorAno());
            System.out.println();
        //System.out.println("A sua data de entrada na empresa foi: " + this.dataDeEntrada.dia + "/" + this.dataDeEntrada.mes + "/" + this.dataDeEntrada.ano);
        // Subistituo o SOP de cima por um novo no qual utilizo o novo metodo com a data ja formatada.
        System.out.println("A sua data de entrada na empresa foi: " + this.dataDeEntrada.getFormatada); // Aqui pode gerar um erro, o getFormatada recebe valor de um metodo void.
                                                                                                        // Porém ele é na realidade uma String, podemos nos confundir e colocar
                                                                                                        // thi.dataDeEntrada.getFormatada() pois vemos o void, mas como se trata
                                                                                                        // de uma String ele tem que vir sem parenteses.                                                                                                        
            System.out.println();
    }
}

class Pessoa { // Classe Pessoa.
    String nome;
    String rg; 
}
class Data { // Classe data

    String getFormatada;

    /*int dia; // Aqui está um erro que cometi, pensei que esse metodo tinha que permanecer, porém ele só atrapalhava.
    int mes;
    int ano;

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

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

    }*/

    void getFormatada(int dia, int mes, int ano) { // Metodo void getFormatada que recebe os valores inteiros, coloca ja como String 
                                                  // Na variavel getFormatada. Acredito que acontece uma conversão.

        this.getFormatada = dia + "/" + mes + "/" + ano;
    }
}
class Programa8 { // classe programa.

    public static void main(String[] args){ // metodo.

        Funcionario8 f1 = new Funcionario8(); // criando o funcionario f1.

            f1.salario = 500; // definindo os parametros que se encontra na classe "principal" e não lincados a classe "secundarias".
            f1.valeRefeicao = 200;
            f1.aumento = 150;
            f1.setor = "TI";

        f1.titular = new Pessoa(); // dando "permissão" ao usuario usar a classe Pessoa.

            f1.titular.nome = "Pablo"; // Sempre que vou atribuir utilizo usuario.o link das classes.atributo da classe Pessoa;
            f1.titular.rg = "987654321";

        f1.dataDeEntrada = new Data(); // // dando "permissão" ao usuario usar a classe Data.

        f1.dataDeEntrada.getFormatada(20,02,1988);

        Funcionario8 f2 = new Funcionario8();

            f2.salario = 800;
            f2.valeRefeicao = 200;
            f2.aumento = 235;
            f2.setor = "Creche";

        f2.titular = new Pessoa();

            f2.titular.nome = "Felipe";
            f2.titular.rg = "741852963";

        f2.dataDeEntrada = new Data();

            f2.dataDeEntrada.getFormatada(20,10,2014);

        f1.mostra(); // Imprimindo usuario f1
        f2.mostra(); 
    }
}
2 respostas
solução!

Fala ai Pablo, legal que tenha conseguido fazer o exercício, se você tiver qualquer problema enquanto estiver desenvolvendo, não hesite em passar aqui no fórum para pedir ajuda :D

Matheus eu acho interessante bater cabeça, dependendo do problema, assim fica mais fácil de entender o conteúdo, mas eu recorro aqui assim... rsrs Abraço.