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

Oque há de errado quando eu chamo o metado mostra ?

public class Ex3 {

    static class funcionario {
        String nome;
        String departamento;
        double salario;
        String dataDeEntradaNoBanco;
        String RG;

    void recebeAumento(double aumento){
        salario += aumento;
    }
    double calculoGanhoAnual(){
        return salario * 12;
    }

    void mostra (){
        System.out.println(nome);
        System.out.println(salario);
    }

    }

    public static void main(String[] args) {
        Ex2.funcionario wagner = new Ex2.funcionario();
        wagner.nome = "Wagner da Silva";
        wagner.salario = 1000;

        wagner.calculaGanhoAnual();
        System.out.println(wagner.calculaGanhoAnual());
        wagner.mostra();
    }
}
2 respostas
solução!

Wagner no teu main tu tá chamando a classe Ex2, mas a classe que tu tá usando é Ex3. E além disso na class Ex3 o teu método é calculoGanhoAnual() e no teu main tu tá chamando calculaGanhoAnual();

Na verdade Wagner, quando vc criou a classe funcionário, no método Mostra, não está claro para o Java qual o objeto que ele deve exibir. Quando você coloca "this.nome" ele automaticamente entende, 'preciso retornar este nome' ou 'preciso retornar o nome do objeto instanciado'.

Como a Vania comentou acima, você chamou o método calculaGanhoAnual e na classe funcionário vc colocou como calculoGanhoAnual.

Abraços!

Marco Aurélio