1
resposta

Problema com o método adiciona tributavel

No método adiciona tributável temos:

public void adicionaTributavel(Tributavel t){
        System.out.println("Adicionando tributável " + t);
        this.total += t.calculaTributos();
}
`

E na classe de teste

public class TestaGerenciadorDeImpostoDeRenda {

    public static void main(String[] args) {
        GerenciadorDeImpostoDeRenda gerenciador = new GerenciadorDeImpostoDeRenda();

        SeguroDeVida sv = new SeguroDeVida();

        gerenciador.adicionaTributavel(sv);

        ContaCorrente cc = new ContaCorrente();
        cc.deposita(100);
        gerenciador.adicionaTributavel(cc);

        System.out.println("Total de tributos = " + gerenciador.getTotal());
    }
}

Tenho um problema na saída

Adicionando tributável SeguroDeVida@1db9742// O que é isso?
Adicionando tributável ContaCorrente@106d69c// O que é isso?
Total de tributos = 43.0

Essa impressão de endereço de memória era o que realmente deveria sair ou o objetivo era imprimir a variável de referência do objeto? O que eu fiz de errado?

1 resposta

Oi Frederico, tudo bem ?

Então cara, por padrão quando mandamos imprimir um objeto, o java vai chamar o método toString(), provavelmente você não o sobreescreveu, o que faz que ele retorne o padrão, que é a referência da memória.

O que você pode fazer é sobreescrever o método toString ou chamar algum outro método para que você não veja mais a referência, mas acredito que seu código está correto.

Abraços