Java - Encapsulamento
Encapsulationé um dos quatro conceitos OOP fundamentais. Os outros três são herança, polimorfismo e abstração.
O encapsulamento em Java é um mecanismo de agrupar os dados (variáveis) e o código agindo nos dados (métodos) juntos como uma única unidade. No encapsulamento, as variáveis de uma classe serão ocultadas de outras classes e podem ser acessadas apenas por meio dos métodos de sua classe atual. Portanto, também é conhecido comodata hiding.
Para obter encapsulamento em Java -
Declare as variáveis de uma classe como privadas.
Fornece métodos setter e getter públicos para modificar e visualizar os valores das variáveis.
Exemplo
A seguir está um exemplo que demonstra como obter encapsulamento em Java -
/* File name : EncapTest.java */
public class EncapTest {
private String name;
private String idNum;
private int age;
public int getAge() {
return age;
}
public String getName() {
return name;
}
public String getIdNum() {
return idNum;
}
public void setAge( int newAge) {
age = newAge;
}
public void setName(String newName) {
name = newName;
}
public void setIdNum( String newId) {
idNum = newId;
}
}
Os métodos públicos setXXX () e getXXX () são os pontos de acesso das variáveis de instância da classe EncapTest. Normalmente, esses métodos são chamados de getters e setters. Portanto, qualquer classe que deseja acessar as variáveis deve acessá-las por meio desses getters e setters.
As variáveis da classe EncapTest podem ser acessadas usando o seguinte programa -
/* File name : RunEncap.java */
public class RunEncap {
public static void main(String args[]) {
EncapTest encap = new EncapTest();
encap.setName("James");
encap.setAge(20);
encap.setIdNum("12343ms");
System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge());
}
}
Isso produzirá o seguinte resultado -
Resultado
Name : James Age : 20
Benefícios do encapsulamento
Os campos de uma classe podem ser somente leitura ou somente gravação.
Uma classe pode ter controle total sobre o que está armazenado em seus campos.