Boa tarde,
Com essa refatoração no getImpostos não parece fazer mais sentido manter esse método NotaFiscal.setImpostos(double)...
Att,
WB::
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::