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

Erro para criar um new Data

public class Funcionario {
    String nome;
    //Data dataNascimento;
    int idade;
    String cpf;
    String endereco;
    String cargo;
    int salario;
    String departamento;
    Data dataBanco;        


    void recebeAumento(double valor){
        this.salario += valor;
    }
    double calculaGanhoAnual(){
        return this.salario * 12;
    }
    void alteraCargo(String novoCargo){
        this.cargo = novoCargo;
    }

    void mostra(){
        System.out.println("Nome: " + this.nome);
        System.out.println("CPF: " + this.cpf);
        //System.out.println("Data de nascimento: " + this.dataNascimento);
        System.out.println("Idade: " + this.idade);
        System.out.println("Endereço: " + this.endereco);
        System.out.println("Cargo atual: " + this.cargo);
        System.out.println("Salário atual: " + this.salario);
        System.out.println("Salário anual: " + this.calculaGanhoAnual());
        System.out.println("Departamento: " + this.departamento);
        System.out.println("Data da entrada no banco: " + this.dataBanco);
    }

    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 testa {
    public static void main(String[] args){
        Funcionario f1 = new Funcionario();     
        f1.nome = "Bruno";
        //f1.dataNascimento = new Data();
        //f1.dataNascimento.preencheData(12,05,1997);
        f1.idade = 19; 
        f1.cpf = "123456789";
        f1.endereco = "R.Sta Cruz da Varginia";
        f1.cargo = "Estagiário";
        f1.salario = 1000;
        f1.departamento = "Operacional";
        f1.dataBanco = new Data();
        f1.dataBanco.preencheData(1, 11, 2016);

        //System.out.println("Nome do funcionario: " + f1.nome);
        //System.out.println("Salário atual: " + f1.salario);
        //System.out.println("Salário anual: " + f1.calculaGanhoAnual());
        f1.mostra();


    }
}

O erro que aparece:

"Funcionario.java:61: error: cannot find symbol f1.dataBanco = new Data(); ^ symbol: class Data location: class testa 1 error"

3 respostas
solução!

Debugando mais um pouco já achei o erro.

Poderia mostrar o erro?

public class Funcionario {
    String nome;
    //Data dataNascimento;
    int idade;
    String cpf;
    String endereco;
    String cargo;
    int salario;
    String departamento;
    Data dataBanco;        


    void recebeAumento(double valor){
        this.salario += valor;
    }
    double calculaGanhoAnual(){
        return this.salario * 12;
    }
    void alteraCargo(String novoCargo){
        this.cargo = novoCargo;
    }

    void mostra(){
        System.out.println("Nome: " + this.nome);
        System.out.println("CPF: " + this.cpf);
        //System.out.println("Data de nascimento: " + this.dataNascimento);
        System.out.println("Idade: " + this.idade);
        System.out.println("Endereço: " + this.endereco);
        System.out.println("Cargo atual: " + this.cargo);
        System.out.println("Salário atual: " + this.salario);
        System.out.println("Salário anual: " + this.calculaGanhoAnual());
        System.out.println("Departamento: " + this.departamento);
        System.out.println("Data da entrada no banco: " + this.dataBanco);
    }

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

A class Data estava dentro da class Funcionario. Repara na ultima chave.