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

Programa não compila. Ex. 6 - Aula 03.

Boa tarde pessoal, estou com problemas neste exercício, segue o código abaixo.

class Funcionario {
    String nome;
    String departamento;
    double salario;
      Data dataDeEntrada;
    String rg;

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

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

    void mostra() {
        System.out.println("Funcionario: " + nome);
        System.out.println("RG: " + rg);
        System.out.println("Entrou na empresa em: " + dataDeEntrada);
        System.out.println("Trabalha no departamento de: " + departamento);
        System.out.println("Salario atual: R$" + salario);
        System.out.println("Salario Anual: " + calculoGanhaAnual());
    }
}

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 TestaFuncionario {

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

        f1.nome = "Hugo";
        f1.salario = 1000;
        f1.recebeAumento(50);
        f1.rg = "123456789";
        f1.departamento = "Vendas";
        f1.dataDeEntrada = new Data();
        f1.dataDeEntrada.preencheData(20, 03, 1950);
        f1.mostra();
    }
}

Erro ao compilar.

TestaFuncionario.java:10: error: cannot find symbol
        f1.entrada = "20/03/1950";
          ^
  symbol:   variable entrada
  location: variable f1 of type Funcionario
TestaFuncionario.java:15: error: cannot find symbol
        System.out.println("Entrou na empresa em: " + f1.entrada);
                                                        ^
  symbol:   variable entrada
  location: variable f1 of type Funcionario
2 errors

Por qual motivo não está compilando corretamente ? Ele detecta problemas no "f1.entrada", porém nem existe mais este código (está dando o mesmo erro mesmo depois de salvar o programa).

Att,

4 respostas

Cara essa porte nem existe mais do seu código né?

f1.entrada = "20/03/1950";

Você deve ter apagado e feito outros código e não deve ter salvado e por isso que ainda fica lendo essa porte que não existe mais. Salva isso ai e roda para ver

Alisson, pior que já salvei umas 300 vezes, reiniciei o pc, e não resolveu. :/

solução!

Murilão, o erro "error: cannot find symbol" é referência a variável/atributo/método que não existe. Dá uma boa conferida, verifica se os arquivos salvos são estes mesmos, abre a pasta onde eles estão salvos na mão, ai abre os arquivos por lá, confere se é isso mesmo, executa o Clean do Projeto no Eclipse, reinicia o Eclipse. Se nada resolver, ai sugiro começar do zero o exercício, mas realmente nunca aconteceu comigo de ficar dando esse erro e estar tudo ok, sempre tinha alguma referência perdida em algum cantinho a algo que não existia.

Emerson, fiz o que disse.

Resolveu o problema, antes eu tinha os códigos separado, e depois resolvi uni-los, porém tinha esquecido de remover os arquivos antigos, e por algum motivo, quando eu compilava o Funcionario.java, ele estava puxando o TestaFuncionario.java antigo junto, que estava salvo separadamente do projeto (com o código antigo).

Muito obrigado!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software