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

Dúvida no Ex. 2 da Aula 5 - Modificadores de acesso

Pessoal, eu coloquei apenas o salario como private e criei o get do salario (código abaixo).

class cadastroFuncionario {
    String nome;
    String rg;
    String departamento;
    private double salario;
    data admissao;

    double getSalario() {
        return this.salario;
    };

Acho que até aqui está ok. Mas quando vou compilar aparece uma mensagem de erro.

error: cannot find symbol

System.out.println("R$" + this.empregados[i].getSalario);

Essa instrução desystem.out.println está na aprte do código abaixo.

void mostraEmpregados() {
        for (int i = 0; i < this.livre; i++) {
            System.out.println("Funcionário na posição: " + i + " - " + this.empregados[i].nome);
            System.out.println("R$" + this.empregados[i].getSalario);
        }
    }

Será que poderiam me ajudar?

4 respostas

Faltou uma informação. A marcação do "cmd" ( um acento circunflexo) está embaixo do ponto entre "...empregados[i].getSalario..."

Paulo poste o código completo da sua classe e e da classe teste.

O erro esta acontecendo ao compilar essa classe ou um método main ?

System.out.println("R$" + this.empregados[i].getSalario);

Nessa linha esta faltando abrir o fechar o parenteses referente o método getSalario, ficando assim:

System.out.println("R$" + this.empregados[i].getSalario());

Caso essa acerto tenha resolvido me avise, se não poste suas classes completas.

solução!

Matheus, Muito obrigado!

Tinha aparecido 5 erros, com a sua ajuda. Ficou apenas 2 erros.

Assistindo a aula de novo, eu descobri o meu erro. Eu confundi a criação dos getters com setters. Eu criei apenas um get, mas deveria ter criado um set também. Depois que eu criei o setSalario. Tudo funcionou perfeitamente.

Abaixo segue código apenas para consulta:

 class cadastroFuncionario {
    String nome;
    String rg;
    String departamento;
    private double salario;
    data admissao;

    public double getSalario(){
        return this.salario;
    }

    public void setSalarioInicial(double novoSalario){
        this.salario = novoSalario;
    }

    void setSalario(double valorAumento){
        this.salario += valorAumento;
    }
}

O getSalario pega o valor do atributo salario. O setSalarioInicial adiciona o valor do salario. O setSalario modifica o atributo salario em caso de aumento.

Está tudo funcionando.

Abs e valeu.

Que bom Paulo, fico feliz que tenha dado certo, caso precisa não deixe de criar suas dúvidas.