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

Meu código não compila

class Funcionario{
    private String nome;
    private String cargo;
    private double salario;
    private String rg;


    public String getNome(){
        return this.nome;
    }

    public String setNome(String nome){
        this.nome = nome;
    }

    public String getCargo(){
        return this.cargo;
    }

    public String cargo(String cargo){
        this.cargo = cargo;    

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

    public double setSalario(double salario){
        this.salario = salario;
    }

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

    public double getGanhoAnual(){
        return this.salario * 12;
    }

    public String getRG(){
        return this.rg;
    }

    public String setRG(String rg){
        this.rg = rg;
    }

    public void mostra(){
        System.out.println("Nome: " + this.nome);
        System.out.println("RG: " + this.rg);
        System.out.println("Cargo: " + this.cargo);
        System.out.println("Salário Mensal: " + this.salario());
        System.out.println("Salário Anual: " + this.getGanhoAnual());
    }
}


class Programa {
    public static void main (String[] args){
        Funcionario f = new Funcionario();

        f.setNome("Carolinne");
        f.setSalario(2500);
        f.recebeAumento(120);

        System.out.println("Nome: " + f.getNome());
        System.out.println("Salario Inicial: " + f.getSalario());
        System.out.println("Salario apos aumento: " + f.recebeAumento());
    }
}
4 respostas

Oi Raphaelli, tudo bem? Vi dois probleminhas no seu código. O promeiro deles é que aparentemente, você esqueceu uma chave ou fechou em algum lugar indevido. O outro é que, nos métodos onde você define um tipo de retorno, você precisa retornar alguma coisa.

public String setNome(String nome){
        this.nome = nome;
    }

public String cargo(String cargo){
        this.cargo = cargo;

O primeiro caso, setNome, como só define o valor, ele não precisa do tipo de retorno e você deve escrever ele como void.

public void setNome(String nome){
        this.nome = nome;
    }

O segundo caso, acontece a mesma coisa, porém, está sem a chave de fechamento:

public String cargo(String cargo){
        this.cargo = cargo;
}

Neste caso, é o setCago? Então ele deve ser void, se for getCargo, ele deve ter o return, entendeu?

Espero ter ajudado, bons estudos!

Eram esses dois erros e mais um que consegui achar. Obrigado.

Uma dúvida não tem como eu imprimir o salário antes do aumento? Porque imprimindo o getSalario ele já vem com o aumento.

solução!

Tem sim, Raphaelli, é só você imprimir o salário antes de dar aumento. Uma vez que você dá o aumento você mexeu no atributo salário do seu Funcionário f.

class Programa {
    public static void main (String[] args){
        Funcionario f = new Funcionario();

        f.setNome("Carolinne");
        f.setSalario(2500);

        System.out.println("Nome: " + f.getNome());
        System.out.println("Salario Inicial: " + f.getSalario());

        f.recebeAumento(120);

        System.out.println("Salario apos aumento: " + f.getSalario());
    }
}