Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Erro ao rodar o programa

Quando rodo o programa aparece a seguinte mensagem:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: The method setSalario(double) in the type Funcionario is not applicable for the arguments (String) The method getBonificacao() is undefined for the type Funcionario

at TesteFuncionario.main(TesteFuncionario.java:9)

O código está assim:



Funcionario.java
public class Funcionario {

    private String nome;
    private String cpf;
    private double salario;

    public Funcionario();{
        //criamos o construtor. Ele não recebe nada ao contrario do método
        // se vc nao cria nenhum construtor, o compilador insere
    }

    public double getBonificacao{
        return this.salario * 0.1;
    }

    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getCpf() {
        return cpf;
    }
    public void setCpf(String cpf) {
        this.cpf = cpf;
    }
    public double getSalario() {
        return salario;
    }
    public void setSalario(double salario) {
        this.salario = salario;
    }



}

TesteFuncional.java

public class TesteFuncionario {

    public static void main(String[] args) {

        Funcionario nico = new Funcionario();
        nico.setNome("Nico Stephen");
        nico.setCpf("777888999-21");
        nico.setSalario("2600.00");

        System.out.println(nico.getNome());
        System.out.println(nico.getBonificacao());

    }

}

Obrigado!
1 resposta
solução!

Olá! Tudo bem? No caso do TesteFuncional.java, o que está acontecendo é que o método setSalario() espera um valor do tipo double (decimal) e está sendo passada uma String. Já na classe Funcionario, o problema é que a declaração do método getBonificacao() foi feita sem parênteses. Resolvendo os problemas, o código ficaria assim:

public class TesteFuncionario {

    public static void main(String[] args) {

        Funcionario nico = new Funcionario();
        nico.setNome("Nico Stephen");
        nico.setCpf("777888999-21");
        nico.setSalario(2600.00); // Sem aspas, para contar como um decimal

        System.out.println(nico.getNome());
        System.out.println(nico.getBonificacao());

    }

}
public class Funcionario {

    private String nome;
    private String cpf;
    private double salario;

    public Funcionario() {}

    public double getBonificacao() {
        return this.salario * 0.1;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getCpf() {
        return cpf;
    }
    public void setCpf(String cpf) {
        this.cpf = cpf;
    }
    public double getSalario() {
        return salario;
    }
    public void setSalario(double salario) {
        this.salario = salario;
    }
}

Espero ter ajudado!