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

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

A minha classe FuncionarioTeste não está compilando:

class Funcionario{

String nome; String departamento; double salario; Data dataEntrada = new Data(); String rg;

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

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

void mostra() { System.out.println("Nome: " + this.nome); System.out.println("Nome: " + this.departamento); System.out.println("Nome: " + this.salario); System.out.println("Nome: " + this.dataEntrada); System.out.println("Nome: " + this.rg); } }

class FuncionarioTeste{ public static void main(String[] args) { Funcionario f1 = new Funcionario();

f1.nome = "JOSUÉ"; f1.departamento = "DESENVOLVIMENTO";

f1.dataEntrada = new Data(); f1.dataEntrada.preencherData(1, 7, 2009);

f1.salario = 1200.00; f1.rg = "123.456.789-0";

System.out.println("O salário com aumento e " + f1.salario); System.out.println("O salário de 12 meses e " + f1.calculaGanhoAnual()); f1.mostra(); }

}

5 respostas

Oi Mariana, Boa Noite. Bom, pelo o que pude ver no seu código você tenta passar um método chamado preencherData. Mais aonde tá esse método? Aonde está essa classe ?

Veja bem:

f1.dataEntrada.preencherData(1, 7, 2009);

Além disso, na sua classe Funcionário você passa a seguinte instrução:

Data dataEntrada = new Data();

1.Vamos analisar: Você tentou criar um objeto chamado Data(); e tentou referenciar ele por meio de uma variável chamda dataEntrada.

  1. Cadê a classe Data? Não dar pra criar um objeto se a classe ( Pré-modelo da classe) feita, com seus atributos e comportamentos!

Para a classe compilar retire essas instruções e tudo relacionado a elas, inclusive os:

    System.out.println("Nome: " + this.dataEntrada);

que vai compilar, beleza? Espero ter ajudado e peço que marque minha resposta como solução! Abraços.

Obrigada Felipe! Sua resposta me ajudou muito, mas ainda preciso esclarecer uma coisa. A minha classe Funcionario tinha um atributo dataEntrada do tipo String, que agora quero alterar para o tipo Data:

class Funcionario { // outros atributos Data dataEntrada;

// metodos } Como devo fazer essa referência, sendo que as classes estão em aquivos diferentes (no mesmo diretório)?

solução!

Você vai aprender como fazer isso adiante nos outros cursos. No momento é indicado que você crie as classes em único arquivo!

class Funcionario {
}
class Data {
}

Entendeu?

Ok. Obrigada!

De nada! Se puder marcar minha resposta como solução agradeço, até logo!