Solucionado (ver solução)
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