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

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

Não estou conseguindo atribuir a data para o funcionário, o que estou fazendo de errado ?

class Funcionario {

    String nome;
    String departamento;
    String rg;
    double salario;
    Data dataDeEntrada;

    // Método para inserir o aumento salarial

    void RecebeAumento(double aumento) { 

        this.salario += aumento;

    }
    // Método para calcular o ganho Anual

    double CalculaGanhoAnual() {

        this.salario *= 12;

        return salario;

    }

// Mostrar Informações do atribuito

    void mostrar(){

        System.out.println("Nome: " + this.nome );
        System.out.println("Departamento: " + this.departamento );
        System.out.println("RG: " + this.rg );
        System.out.println("Salario: " + this.salario );
        System.out.println("Data Inicio: " + this.dataDeEntrada.dia + "/" + this.dataDeEntrada.mes + "/" + this.dataDeEntrada.ano);
        System.out.println("Rendimento anual : " + CalculaGanhoAnual());

    }

} // Fim da classe funcionario

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;        

    }
}

class Programa {

    public static void main(String[] args){

        Funcionario f1 = new Funcionario(); // Criando a variavel que está apontando para o objeto Funcionario

        f1.nome = "Jhonata";
        f1.departamento = "TI";
        f1.rg = "0154229999999";
        f1.salario = 5000.00;
        f1.RecebeAumento(300);    

        f1.dataEntrada = new Data();
        f1.dataEntrada.PreencheData(03, 12, 2015);

        f1.mostrar();
    }

}
Erro:  funcionario.java:68: error: cannot find symbol
                f1.dataEntrada = new Data();
                  ^
  symbol:   variable dataEntrada
  location: variable f1 of type Funcionario
funcionario.java:69: error: cannot find symbol
                f1.dataEntrada.PreencheData(03, 12, 2015);
                  ^
  symbol:   variable dataEntrada
  location: variable f1 of type Funcionario
2 errors
  • A linha abaixo, significa que estou apontando para o atributo "dataEntrada" do objeto que está apontando para a class Funcionário ? ``` f1.dataEntrada = new Data();

```

4 respostas
solução!

Olá Jhonata! O seu problema foi apenas um erro de digitação. Perceba que sua variável na classe Funcionario se chama "dataDeEntrada" e você está pondo na classe Programa da seguinte forma:

f1.dataEntrada

Por isso está dando que a variável não existe, pois de fato não existe dataEntrada, mas sim dataDeEntrada, o correto seria você por:

f1.dataDeEntrada = new Data();
f1.dataDeEntrada.PreencheData(03, 12, 2015);

Espero ter ajudado! Bons Estudos!

Jhonata

é o seguinte no o nome da sua variavel é dataDeEntrada e quando você chama no método main você colocou :

f1.dataEntrada = new Data()

ele não está encontrando esse nome de variavel "dataEntrada"

Espero ter ajudado , Bons Estudos

Na sua classe funcionário o atributo chama-se dataDeEntrada, porém você está tentando atribuir uma instância da classe Data para o atributo dataEntrada.

Tracando de f1.dataEntrada para f1.dataDeEntrada deve resolver.

Entendi, obrigado a todos.