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

Começando com Orientação a Objetos - Exercício 6

Executei o exercício 6 e funcionou da minha forma. Porém eu vi a resposta após finalizar e fiquei em dúvida sendo assim alterei o meu código para : Classe data com método preencheData

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

Classe Funcionario

class Funcionario {
     // recebendo data da classe Data
    String nome;
    double salario;
    String rg;
    String dataNascimento;
    String nomeDaMae;
    String nomeDoPai;
    String cidadeNatal;
    String enderecoAtual;

    Data dataRegistro;

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

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

    void mostra(){
        System.out.println("Nome do Funcionario .: "+this.nome);
        System.out.println("Salário .: "+this.salario);
        System.out.println("Data do Registro .:"+this.dataRegistro.dia+"/"+this.dataRegistro.mes+"/"+this.dataRegistro.ano);
        System.out.println("RG .: "+this.rg);
        System.out.println("Data do Nascimento"+this.dataNascimento);
        System.out.println("Nome da Mae .: "+this.nomeDaMae);
        System.out.println("Nome do Pai .: "+this.nomeDoPai);
        System.out.println("Cidade Natal .: "+this.cidadeNatal);
        System.out.println("Endereco Atual .: "+this.enderecoAtual);
    }
}

Classe TestaFuncionario

É nesta classe que estou tendo problema, eu não consigo compilar a TestaFuncionario pois ocorre o erro : TestaFuncionario.java:7: error: cannot find symbol f1.dataRegistro.preencheData(1, 7, 2004); symbol: method preencheData(int, int, int) location: variable dataRegistro of type Data O que estou fazendo errado ?

class TestaFuncionario{
    public static void main(String[] args){
        Funcionario f1 = new Funcionario();
        f1.nome = "Leandro";
        f1.salario = 1000.00;
        f1.dataRegistro = new Data();
        f1.dataRegistro.preencheData(1, 7, 2004);

        f1.rg = "22.222.222-1";
        f1.nomeDaMae = "Teresa";
        f1.nomeDoPai = "Joao";
        f1.dataNascimento = "04/04/1979";
        f1.cidadeNatal = "CATANDUVA";
        f1.enderecoAtual = "Rua 1 nro 10";
        System.out.println("Salario Atual .: "+f1.salario);

        f1.recebeAumento(1500.00);
        double ganhoAnual = f1.calculaGanhoAnual();

        f1.mostra();
        System.out.println("Salario Com Aumento .: "+f1.salario);
        System.out.println("Ganho anual = "+ganhoAnual);
    }
}
4 respostas
solução!

Não tem nada de errado, inclusive acabo de compilar se código aqui e funcionou perfeitamente. Tenta salvar essas classes num outro diretório e compila novamente.

Obrigado João, fiz exatamente isso, copiei as classes para outro diretório e foram compiladas com sucesso. Não entendi o porque ? Isso acontece com frequência em Java ? é o mesmo fonte porque funciona em outro diretório ?

Obrigado

olá José, não é comum compilarmos classes via prompt de comando, aqui é mais por questão didática, a compilação é feita pela IDE, e as ide's tem ações de "clean" , "refresh" entre outros meios de manter a aplicação "limpa", mas também tem a questão do Sistema operacional, sabe que o windows gosta de trolar o usuário. :)

Entendido João. Muito obrigado pela dica. Abraço e valeu mesmo.