Boa tarde,
Com essa refatoração no getImpostos não parece fazer mais sentido manter esse método NotaFiscal.setImpostos(double)...
Att,
WB::
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa tarde,
Com essa refatoração no getImpostos não parece fazer mais sentido manter esse método NotaFiscal.setImpostos(double)...
Att,
WB::
Wilson, como faz tempo que fiz as aulas não lembro do que foi feito, poderia postar as mudanças para eu verificar ?
Bom dia, Matheus!
A classe ficaria assim, segundo a proposição do exercício:
package br.alura.refatoracao.cap3;
public class NotaFiscal {
private int id;
private double valorBruto;
private double impostos;
public NotaFiscal(int id, double valorBruto) {
this.id = id;
this.valorBruto = valorBruto;
}
public NotaFiscal(double valorBruto) {
this(0, valorBruto);
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getValorBruto() {
return valorBruto;
}
public void setValorBruto(double valorBruto) {
this.valorBruto = valorBruto;
}
public void setImpostos(double impostos) {
this.impostos = impostos;
}
public double getValorLiquido() {
return this.valorBruto - this.impostos;
}
// A alteração foi proposta aqui:
public double getImpostos() {
if(valorBruto < 200) {
impostos = valorBruto * 0.03;
}
else if(valorBruto > 200 && valorBruto <= 1000) {
impostos = valorBruto * 0.06;
}
else {
impostos = valorBruto * 0.07;
}
return impostos;
}
}
Mas entendo que seria melhor este cálculo ficar no construtor e o getImpostos() apenas retornar o valor.
Na verdade mesmo o ideal seria que o imposto fosse recalculado toda vez que o valor da NF mudar através de um método privado, mas isto talvez saia um pouco do escopo dessa aula.
Att,
WB::