O que é um método getter ou o método setter em Java OO ?
O que é um método getter ou o método setter em Java OO ?
Olá Patrick, tudo bem com você?
Em Orientação a Objetos, é uma boa prática isolar os atributos de uma classe do resto do sistema. Em outras palavras, não permitimos que outras classes manipulem esses atributos diretamente da forma que desejarem. No Java, protegemos os atributos através de modificadores de acesso que inserimos antes de declarar o tipo e o nome do atributo. O mais utilizado é o private, que faz com que o acesso a esse atributo seja limitado ao escopo da classe, ou seja, ele isola seu acesso de qualquer outro código que esteja fora da classe onde ele foi inicialmente declarado.
public class Pessoa {
private String nome;
private Integer idade;
private Double altura;
}
No código acima, criei uma classe Pessoa que contém os atributos privados. O que significa que ninguém mais fora da classe Pessoa pode ter acesso à eles! Mas e se quisermos permitir que outras classes alterem esse atributos, porém seguindo as nossas regras? Bom, nesse caso usamos métodos que poderão manipular esses atributos seguindo as nossas regras, e os tipos mais comuns desses métodos são os getters e setters. Através dos getters, permitimos que outras classes recuperem os valores contidos nos atributos; enquanto os setters permitem que outras classes modifiquem os atributos.
public class Pessoa {
private String nome;
private Integer idade;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Integer getIdade() {
return idade;
}
public void setIdade(Integer idade) {
this.idade = idade;
}
}
Dessa forma, encapsulamos os atributos da nossa classe. Permitindo que outros pontos do sistema só possam alterar os atributos de Pessoa através de seus próprios métodos getters e setters. O que leva a outro ponto importante a se levar em conta quando você for estudar mais a fundo sobre Orientação a Objetos: como vimos, mesmo adicionando getters e setters na classe, as coisas continuam como antes e qualquer ponto do sistema é capaz de alterar nossos atributos já que os getters e setters são públicos! Por isso é importante fazer duas coisas: adicionar lógica nos setters para que qualquer modificação nos atributos sigam as nossas regras e não sair criando getters e setters indiscriminadamente sem necessidade. Um ótimo artigo que discute mais sobre esse assunto é o Como não aprender Java e Orientação a Objetos, recomendo ler depois que terminar as aulas do segundo curso de Java.
Espero que isso te ajude. Se tiver qualquer dúvida é só avisar!
Forte abraço e bons estudos!!