Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
12
respostas

Não consigo printar a Data

class Funcionario {
    String nome;
    int rg;
    double sal;
    Data dataEntrada;

    //methods
    void RecebeAumento(double aumento){
        this.sal = sal*aumento;
    }
    double calculaGanhoAnual(){
        return this.sal*12.0;
    }
    void mostra(){
        System.out.println("nome do Funcionario: "+this.nome);
        System.out.println("Rg do Funcionario: "+this.rg);
        System.out.println("Sálario do Funcionario: "+this.sal);
        System.out.println(this.calculaGanhoAnual());
        System.out.println(this.dataEntrada);

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

    void data1(int d, int m, int a){
        this.dia = d;
        this.mes = m;
        this.ano = a;
    }
}
class teste {
    public static void main(String[]ags){
        Funcionario f1 = new Funcionario();
        f1.nome = "Willian";
        f1.rg = 420900986;
        f1.sal= 1500;

        Data data = new Data();
        f1.data = data;
        f1.data.data1(17, 3, 1994);
        f1.mostra();


    }

insira seu código aqui

```
insira seu código aqui

```

12 respostas

Opa, faltou você criar um método na classe Data que faça um sysout das informações da data.

class Funcionario {
    String nome;
    String DataEntrada;
    int rg;
    double sal;
    Data dataEntrada;

    //methods
    void RecebeaumentoAumento(double aumento){
        this.sal = sal*aumento;
    }
    double calculaGanhoAnual(){
        return this.sal*12.0;
    }
    void mostra(){
        System.out.println("nome do Funcionario: "+this.nome);
        System.out.println("Rg do Funcionario: "+this.rg);
        System.out.println("Sálario do Funcionario: "+this.sal);
        System.out.println(this.calculaGanhoAnual());
        System.out.println(this.dataEntrada);

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

    void data1(int d, int m, int a){
        this.dia = d;
        this.mes = m;
        this.ano = a;
        System.out.println(this.dia+"/"+this.mes+"/"+this.ano);
    }
}
class teste {
    public static void main(String[]ags){
        Funcionario f1 = new Funcionario();
        f1.nome = "Willian";
        f1.rg = 420900986;
        f1.sal= 1500;

        Data data = new Data();
        f1.data = data;
        f1.data.data1(17, 3, 1994);
        f1.mostra();


    }
}

mesmo assim o problema persiste :/

Na hora que você chama o método data1 a o print não funciona?

Não, da um erro de compilação

Opa, nos diga qual é o erro, assim podemos ajudar :).

Funcionario.java:44: error: cannot find symbol f1.data = data; ^ symbol: variable data location: variable f1 of type Funcionario Funcionario.java:45: error: cannot find symbol f1.data.data1(17, 3, 1994); ^ symbol: variable data location: variable f1 of type Funcionario 2 errors

O nome do atributo é dataEntrada em vez de data.

Data dataEntrada;

É um atributo que tenho na classe Funcionario

Sim, mas você está fazendo f1.data em vez de F1 dataEntrada.

solução!

Na verdade o erro esta em usar um objeto f1 chamar outro objeto data que por sua vez chama o método data1();

Obrigado pela força Alberto Souza :D