Encapsulamento
Voltar para Programação em Java
Quando trabalhamos com classes em Java, na maioria das vezes não é interessante que os atributos estejam visíveis para todos que utilizam a classe, nem que possam ser modificados livremente. Dessa forma, trabalhamos com o isolamento, ou encapsulamento, dos atributos, transformando-os em atributos não públicos. Contudo, para que possamos utilizar tais atributos, utilizamos métodos específicos chamados getters e setters.
Getters e Setters
Os métodos getters são métodos que retornam informações de atributos. Por exemplo, se quisermos retornar o atributo placa da classe Carro, podemos criar um método chamado getPlaca. Assim também, podemos criar um método para alterar a placa do carro, chamado setPlaca, passando a informação como parâmetro:
1public class Carro {
2 // ...
3 private String placa;
4 // ...
5
6 public String getPlaca() {
7 return placa;
8 }
9
10 public void setPlaca(String placa) {
11 this.placa = placa;
12 }
13}
Até ai pode não parecer tanta vantagem. Contudo, isso começa a se tornar interessante conforme trabalhamos com informações que precisam ser tratadas antes de serem alteradas, ou mesmo precisam ser validades. Como no exemplo a seguir:
1public class Encapsulamento01 {
2 private int minhaInformacao = 0;
3
4 public void setMinhaInformacao(int entrada) {
5 if (entrada > minhaInformacao) {
6 minhaInformacao = entrada;
7 }
8 }
9
10 public void setMinhaInformacao(String entrada) {
11 int auxiliar = Integer.valueOf(entrada);
12 setMinhaInformacao(auxiliar);
13 }
14
15 public int getMinhaInformacao() {
16 return minhaInformacao;
17 }
18}
E a classe Main que acessa essas informações, agora encapsuladas.
1public class Main {
2 public static void main(String [] args) {
3 Encapsulamento01 e01 = new Encapsulamento01();
4
5 System.out.println(e01.getMinhaInformacao());
6 // Utiliza o método get
7 e01.setMinhaInformacao(10);
8 System.out.println(e01.getMinhaInformacao());
9 // Utiliza o método get sobrescrito
10 e01.setMinhaInformacao("4");
11 System.out.println(e01.getMinhaInformacao());
12 }
13}
Exercício
Criar uma classe Pessoa da seguinte forma:
- Deve possuir pelo menos 4 atributos e todos encapsulados;
- Criar métodos getters e setters para cada atributo;
- Criar pelo menos 2 métodos sobrescritos;
- Fazer validações ou gerenciamento de entrada em alguns métodos setters;
- Criar uma classe principal que cria um objeto a partir da classe Pessoa e altere e mostre as informações desse objeto.