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

Porque o cod abaixo está mostrando que a variável soma não está sendo inicializada ?

Porque o cod abaixo está mostrando que a variável soma não está sendo inicializada ?

public class ControleBonificacao {

private double soma;

public void registra (Gerente g) {
    double bonificacao = g.getBonificacao();
    this.soma += bonificacao;
}

}

o do professor é assim e funciona hauhauhauh!!!!!!

public class ControleBonificacao {

private double soma;

public void registra (Gerente g) {
    double bonificacao = g.getBonificacao();
    this.soma = this.soma + bonificacao;
}

}

10 respostas

Boa tarde Diego. Poderia postar o nome do erro que está dando? Pois talvez seja a inicialização da variável no main.

Esse é o erro que aparece "The value of the field ControleBonificacao. soma is not used".

Tenta trocar o tipo da referência Gerente por Funcionario para ver se dar certo.

Oi Diego, tudo certo?
Me chamo Guido, e sou um dos estudantes aqui da Alura.
Com a sua classe ControleBonificacao, não tem problema nenhum. O problema pode está na classe do programa, onde temos o método main.
Lá no método main, temos que instanciar um objeto da classe ControleBonificacao para poder chamar o método registra, que recebe uma referência do tipo Funcionario.
Quando damos new na classe ControleBonificacao, criamos um objeto dessa classe, e o atributo soma é iniciado automaticamente com o valor 0.0, pois sua variável é do tipo double, e esse é o valor padrão do tipo double para quando não definimos nenhum valor no construtor.
Lembrando que, a variável soma pertence ao objeto criado, que é o que chamamos de atributo, campo ou variável de instância.
Vc poderia postar o seu método main para a gente dar uma olhada?
Abraços e aguardo retorno.
Obrigado!

Luan Mello da Silva bom dia !!!

Então não deu certo, continua dando o mesmo erro :(

Guido José Warken Filho bom dia !!!

segue minha classe main, mais creio que o problema não está na classe Main.

public class TesteReferencias {

public static void main(String[] args) {
    Gerente g1 = new Gerente();

ControleBonificacao control = new ControleBonificacao(); control.registra(g1);

public class TesteReferencias { public static void main(String[] args) { Gerente g1 = new Gerente(); ControleBonificacao control = new ControleBonificacao(); control.registra(g1);

}

}

Ops foi mau ... agora acho que vai

public class TesteReferencias {

    public static void main(String[] args) {
        Gerente g1 = new Gerente();
        ControleBonificacao control = new ControleBonificacao();
        control.registra(g1);
    }
}
solução!

Boa tarde diego.barroso. Acho que sei o pq. Esse "erro" ele está amarelo e na lateral esquerda do código no eclipse? pq se estiver, é só um aviso dizendo que você inicializou a variável e/ou está manipulando o valor dela mas não a está usando para mostrar tela ou pegar seu valor. Faça assim, no ControleBonificacao logo abaixo do método registra, coloque esse código e chama ele no main do TestaReferencias dentro de um "sysout".

public double getSoma() {
    return soma;
}

Obrigado!