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

Aula 3 Exercício 1 Codigo com defeito

Olá, Gostaria que avaliassem meu código e me indicassem o que está errado. Eu fiz um código semelhante (em outro contexto) para teste e funcionou normal. Nesse, o compilador não está reconhecendo o System.out.println e diz que cada variável do Joao.X precisa de um identifier. Não consigo entender o que está errado. Desde já agradeço a ajuda.

class Funcionario {
    String Nome;
    String Departamento;
    double Salario;
    String DataDeEntrada;
    String RG;

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

    void calculaGanhoAnual(){
        this.Salario = Salario * 12;
    }
}

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

    Funcionario Joao = new Funcionario();

    Joao.Nome = "Joao Jose";
    Joao.Departamento = "ISCB";
    Joao.Salario = 10;
    Joao.DataDeEntrada = "12/12/12";
    Joao.RG = "12345679-2";

    Joao.recebeAumento(200);
    System.out.println(calculaGanhoAnual);
}
3 respostas
solução!

Oi Lucas, tudo bem ?

Teve apenas um pequeno problema, você esqueceu de abrir o escopo do método :

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

    Funcionario Joao = new Funcionario();

    Joao.Nome = "Joao Jose";
    Joao.Departamento = "ISCB";
    Joao.Salario = 10;
    Joao.DataDeEntrada = "12/12/12";
    Joao.RG = "12345679-2";

    Joao.recebeAumento(200);
    System.out.println(calculaGanhoAnual);
}

Repare no método main !

A implementação para isso funcionar ficaria dessa forma :

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

        Funcionario Joao = new Funcionario();

        Joao.Nome = "Joao Jose";
        Joao.Departamento = "ISCB";
        Joao.Salario = 10;
        Joao.DataDeEntrada = "12/12/12";
        Joao.RG = "12345679-2";

        Joao.recebeAumento(200);
        System.out.println(calculaGanhoAnual);
    }
}

Espero ter ajudado.

Abraços

Olá Mateus, Muito obrigado. Era isso que estava faltando mesmo. O único problema agora é a ultima linha de impressão. O erro de compilação está nela. Você sabe qual o problema?

Perdão, esqueci de falar disso.

Primeiro, ele tá falando que seu calculaGanhoAnual é uma variavel ou atributo, que de fato você não possui na classe programa, sendo na verdade um método da classe Funcionario, então você teria que o invocar :


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

        Funcionario Joao = new Funcionario();

        Joao.Nome = "Joao Jose";
        Joao.Departamento = "ISCB";
        Joao.Salario = 10;
        Joao.DataDeEntrada = "12/12/12";
        Joao.RG = "12345679-2";

        Joao.recebeAumento(200);
        System.out.println( Joao.calculaGanhoAnual() );
    }
}

Mas se você fizer dessa forma repare que ainda assim você vai ficar levando erro, pois se formos ver a escrita do método, vemos que ele não devolve nada, ou seja tem um retorno void, e não conseguimos escrever void.

Então nesse caso temos que trocar o retorno do seu método, acredito que double deva resolver :

    double calculaGanhoAnual(){
        return Salario * 12;
    }

Aí se você rodar agora ele deve imprimir a solução.

Abraços