Encapsulamento em Java Explicado: Ocultação Segura de Dados e Controle
Encapsulamento é um dos quatro conceitos fundamentais de OOP. Os outros três são herança, polimorfismo e abstração.
Encapsulamento em Java é um mecanismo de agrupar dados (variáveis) e código que age sobre os dados (métodos) como uma única unidade. No encapsulamento, as variáveis de uma classe ficam ocultas de outras classes e só podem ser acessadas através dos métodos de sua própria classe. Por isso, também é conhecido como ocultação de dados (data hiding).
Como Alcançar Encapsulamento em Java
- Declarar variáveis da classe como
private. - Fornecer métodos
publicsetter e getter para modificar e visualizar os valores.
Exemplo: EncapTest
/* 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 pontos de acesso das variáveis de instância. Conhecidos como getters e setters. Qualquer classe que queira acessar as variáveis deve usar esses getters e setters.
Exemplo: RunEncap
/* 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("Nome: " + encap.getName() + " Idade: " + encap.getAge());
}
}
Saída:
Nome: James Idade: 20
Benefícios do Encapsulamento
- Campos da classe podem ser tornados somente leitura (apenas getter) ou somente escrita (apenas setter).
- Uma classe tem controle total sobre o que é armazenado em seus campos (validação, lógica de negócio, etc.).
Java
- Entendendo a Palavra-chave final em Java: Variáveis, Métodos e Classes
- Operador instanceof em Java: Guia Completo
- Dominando Encapsulamento em Java: Guia Prático de Ocultação de Dados
- Entendendo Classes Aninhadas Estáticas em Java: Uso, Diferenças e Exemplos
- Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
- Padrão Singleton em Java Explicado: Como Implementar e Usar com Segurança
- Dominando Reflection em Java: Inspecionando Classes, Métodos e Campos em Tempo de Execução
- Dominando Java ObjectOutputStream: Serialização, Métodos e Exemplos Práticos
- Dominando Java Generics – Construindo Código Reutilizável e Type-Safe
- Dominando Operações de Arquivo em Java com java.io – Criação, Leitura, Escrita e Exclusão