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

Dúvida no Ex. 6 da Aula 3 - Começando com Orientação a objetos

Não estou conseguindo resolver esses erros. Alguem pode me ajudar?

class FuncionarioDoBanco{
    String nome;
    String departamento;
    double salario;
    String RG;
    Data dataDeEntrada;

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

    void mostra(){                                
        System.out.println("Nome: " + this.nome);
        System.out.println("Departamento: " + this.departamento);
        System.out.println("Salario: " + this.salario);
        System.out.println("RG: " + this.RG);
        System.out.println(this.dataDeEntrada);
    }    

    void aumento(double ValorDoAumento){
        this.salario += ValorDoAumento;
    } 

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

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

class Funcionario {
    public static void main(String[] args){
        FuncionarioDoBanco f1 = new FuncionarioDoBanco();
        f1.nome = "David William do Nascimento";
        f1.departamento = "Cobranca";
        f1.salario = 2300.0;
        f1.RG = "33884242-x";

        f1.dataDeEntrada = new Data();
        f1.dataDeEntrada.preecheData(7,10,85);
        f1.mostra();        

        FuncionarioDoBanco f2 = new FuncionarioDoBanco();
        f2.nome = "Celia Ferreira Silva";
        f2.departamento = "Atendente";
        f2.salario = 2300.0;
        f2.RG = "33884255-84";    

   }
}
5 respostas

David ,

pelo que vi em seu código , a classe Data está dentro da Classe FuncionarioDoBanco .

modifique essa parte do código .

outra coisa , o método preencheData irá somente receber os valores , você vai precisar tratar esse método para imprimir a data .

Olá David,

Verifiquei os seguintes problemas em seu código:

  1. A classe Data esta declarada dentro da classe FuncionarioDoBanco.

  2. O método preencheData deve estar declarado dentro da classe Data.

  3. O método "mostra" (class FuncionarioDoBanco) deve acessar o atributo "this.dataDeEntrada.dia/dataDeEntrada.mes/dataDeEntrada.ano".

Tente efetuar essas alterações e teste para ver o resultado!

Compartilhe aqui conosco se deu certo!

Obrigado.

Obrigado Celso e Matheus... Arrumei o que tinha que arrumar porém, no ..

Quando eu uso assim.... aparece Data@139a55 (nada a ver...kk)

void mostra( ) {
System.out,println(this.dataDeEntrada);
}

Quando eu uso....

void mostra( ) {
System.out,println(this.dataDeEntrada.dia/dataDeEntrada.mes/dataDeEntrada.ano);
}

aparece zerado... Alguma coisa errada???

Rss tranquilo.

Essa numeração estranha é porque você tentou mostrar o "objeto" que esta sendo representado pelo atributo dataDeEntrada. Por isso é necessario acessar o objeto da maneira abaixo:

System.out.println(this.dataDeEntrada.dia+"/"+this.dataDeEntrada.mes+"/"+this.dataDeEntrada.ano);

Acredito que mostrou 0 pq ele fez um calculo, já que os atributos são do tipo inteiro, só precisava concatenar com barra para separar os numeros da data.

Isso deve resver. Teste ai e compartilhe ;)

Qq coisa só mandar aqui.

solução!

resolvido. Obrigado