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

Erro no cmd

... Classe DATA ...

// Exercicio 6

public 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;
    }
    void mostrarData(){
     System.out.println(this.dia + "/" + this.mes +"/"+ this.ano);
   }
}

... Classe Funcionario7 ...

class Funcionario7 {

    // seus outros atributos e métodos
    String nome;
    String departamento;
    double salario;
    Data dataDeEntrada;
    String rg;
    double calculaGanhoAnual;

  // seus outros atributos e métodos
    void recebeAumento (double aumento) {
    this.salario += aumento;
    }

    //atributo e já criando a data!
    Data dataDeEntrada = new Data();

    void mostra() {
        System.out.println("Nome: " + this.nome);
    System.out.println("Departamento: " + this.departamento);
    System.out.println("Salario: " + this.salario);
    System.out.println("RG: " + this.rg);
        // imprimir aqui os outros atributos...
        System.out.println("Dia: " + this.dataDeEntrada.dia);
        System.out.println("Mês: " + this.dataDeEntrada.mes);
        System.out.println("Ano: " + this.dataDeEntrada.ano);
    }
}

... Classe Teste ...

class TestaFuncionario7 {
    public static void main(String[] args) {
        Funcionario f1 = new Funcionario();
        f1.nome = "Hugo";
        f1.salario = 100;
        f1.recebeAumento(50);

        // adicionando a data como tipo
        f1.dataEntradaBanco = new Data();
        f1.dataEntradaBanco.preencheData(1, 7, 2009);

        f1.mostra();
    }
}

... Resultado no prompt ...

 Data dataDeEntrada;
        ^
  symbol:   class Data
  location: class Funcionario7
Funcionario7.java:17: error: cannot find symbol
    Data dataDeEntrada = new Data();
    ^
  symbol:   class Data
  location: class Funcionario7
Funcionario7.java:17: error: cannot find symbol
    Data dataDeEntrada = new Data();
                             ^
  symbol:   class Data
  location: class Funcionario7
3 errors

Como resolvo esses erros?

7 respostas

Oi Letícia!

Parece que o java não encontrou a classe Data. Todas as classes estão na mesma pasta? Está tudo compilado? Só compilar a classe Funcionario7Teste deve compilar as outras.

Porém tem outro erro aí. Na Funcionario7 você declara o atributo e depois declara de novo pra inicializar:

Data dataDeEntrada;
Data dataDeEntrada = new Data();

Remova a declaração que não inicializa!

Olá Marco, sim estão todos na mesma pasta. Compilando está a Data e após essas alteração a Funcionario7. No entanto, precisei retirar os System que tinham o dia, mês e ano.

System.out.println("Dia: " + this.dataDeEntrada.dia);
System.out.println("Mês: " + this.dataDeEntrada.mes);
System.out.println("Ano: " + this.dataDeEntrada.ano);

Porém, você mencionou de compilar apenas o TestaFuncionario7. Tentei e ainda da erro.

TestaFuncionario7.java:4: error: cannot find symbol
        Funcionario7.salario = 1234;
        ^
  symbol:   variable Funcionario7
  location: class TestaFuncionario7
TestaFuncionario7.java:6: error: cannot find symbol
        Funcionario7 f1 = new Funcionario7();
        ^
  symbol:   class Funcionario7
  location: class TestaFuncionario7
TestaFuncionario7.java:6: error: cannot find symbol
        Funcionario7 f1 = new Funcionario7();
                              ^
  symbol:   class Funcionario7
  location: class TestaFuncionario7
TestaFuncionario7.java:12: error: cannot find symbol
        f1.dataEntradaBanco = new Data();
                                  ^
  symbol:   class Data
  location: class TestaFuncionario7
4 errors
solução!

Há vários errinhos. Volte no seu código e preste atenção a tudo. Se acessou uma variável, confira o nome dela na classe à qual pertence. Confira O NOME da classe. Dê uma olhada:

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

Repare que você chamou a classe de TestaFuncionario7 mas ao criar o funcionário está usando a classe Funcionario e não Funcionario7. Também, a classe Funcionario7 não tem um atributo dataDeEntradaBanco e sim somente dataDeEntrada.

No método mostra() da classe Funcionario7 você não deveria ter problemas com utilizar os atributos da dataDeEntrada mas como você fez o método, sugeriria chamar dataDeEntrada.mostrarData().

E várias outras coisinhas que eu posso não ter visto. Confere tudo com cuidado, ok? Aí quando não conseguir mesmo encontrar o motivo do erro, posta aqui de novo as suas classes! =)

;

Leticia, tudo bom? Acho que aconteceu algum erro por aqui. Conseguiu resolver?

Classe Data


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;
    }

    void mostrarData(){
    System.out.println(this.dia + "/" + this.mes +"/"+ this.ano);
    }
}

Classe Funcionario7

class Funcionario7 {

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

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

    void mostra() {
        System.out.println("Nome: " + this.nome);
    System.out.println("Departamento: " + this.departamento);
    System.out.println("Salario: " + this.salario);
    System.out.println("RG: " + this.rg);
    System.out.println("Data: " + this.dataDeEntrada.mostrarData());
    }
}

Classe de Teste

class TestaFuncionario7 {
    public static void main(String[] args) {

    Funcionario7.salario = 1234;

        Funcionario7 f1 = new Funcionario7();
        f1.nome = "Hugo";
        f1.salario = 100;
        f1.recebeAumento(50);

        // adicionando a data como tipo
        f1.dataDeEntrada = new Data();
        f1.dataDeEntrada.preencheData(1, 7, 2009);

        f1.mostra();
    }
}

Apresenta os seguintes erros... Executando a Classe Funcionario7

Funcionario7.java:8: error: cannot find symbol
        Data dataDeEntrada;
        ^
  symbol:   class Data
  location: class Funcionario7
1 error

Executando a Classe de Teste

TestaFuncionario7.java:4: error: cannot find symbol
        Funcionario7.salario = 1234;
        ^
  symbol:   variable Funcionario7
  location: class TestaFuncionario7
TestaFuncionario7.java:6: error: cannot find symbol
        Funcionario7 f1 = new Funcionario7();
        ^
  symbol:   class Funcionario7
  location: class TestaFuncionario7
TestaFuncionario7.java:6: error: cannot find symbol
        Funcionario7 f1 = new Funcionario7();
                              ^
  symbol:   class Funcionario7
  location: class TestaFuncionario7
TestaFuncionario7.java:12: error: cannot find symbol
        f1.dataDeEntrada = new Data();
                               ^
  symbol:   class Data
  location: class TestaFuncionario7
4 errors

Ok, parece duas coisas:

  1. Você está tentando atribuir o salário do jeito errado; Tente fazer assim:

    Funcionario7 f1 = new Funcionario7();
    f1.salario = 1234.0;

    O código que você está usando serve pra outra coisa e não deve ser usado desse modo, nesse contexto.

  2. Parece que o compilador não está encontrando as classes. Se ao corrigir o erro acima e compilar a classe TestaFuncionario7 o problema não for resolvido, faça a seguinte alteração em todas as classes - ao declarar o nome da classe, use o modificador public:

    public class NomeDaClasse

Aí é só compilar e rodar e deve dar tudo certo:

$ javac TestaFuncionario7.java
$ java TestaFuncionario7