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

get e set

Só devemos, por convenção, usar getters e setters para atributos da classe?

3 respostas
solução!

Boa tarde, Thiago! Como vai?

Não necessariamente, veja o seguinte exemplo:

public final class Negociacao {

  private final double preco;
  private final int quantidade;

  public Negociacao(double preco, int quantidade) {
    this.preco = preco;
    this.quantidade = quantidade;
  }

  public double getPreco() {
    return preco;
  }

  public int getQuantidade() {
    return quantidade;
  }

  public double getVolume() {
    return preco * quantidade;
  }
}

Repare que volume não é um atributo da classe Negociacao, mas eu fiz um getVolume() para ele. Mas veja tbm que eu poderia ter feito a classe da seguinte forma:

public final class Negociacao {

  private final double preco;
  private final int quantidade;
  private final double volume;

  public Negociacao(double preco, int quantidade) {
    this.preco = preco;
    this.quantidade = quantidade;
    this.volume = preco * quantidade;
  }

  public double getPreco() {
    return preco;
  }

  public int getQuantidade() {
    return quantidade;
  }

  public double getVolume() {
    return volume;
  }
}

Essa forma tbm estaria correta. Então, veja que volume embora não seja um atributo no primeiro exemplo, ele é um atributo em potencial e ele tbm é obtido através da composição de outros 2 atributos.

Conclusão: vc usará a convenção de nomes getters e setters, para seus atributos que deseja expor e além disso pode usar a mesma convenção para esses "atributos em potencial", da mesma forma como foi visto no caso do volume.

Grande abraço!

Ah legal. obrigado pela explicação.

Eu já tava com habito de colocar praticamente em todos os métodos o get, quando se trata de receber alguma informação.

Por nada, Thiago!

Sempre que precisar, sinta-se a vontade de colocar seus questionamentos aqui no fórum!

Grande abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software