Encapsulation é um dos princípios fundamentais da programação orientada a objetos (OOP) e envolve a proteção dos detalhes internos de uma classe, encapsulando-os e expondo apenas uma interface controlada para interação externa. Isso é alcançado através do uso de modificadores de acesso (private, public, protected, etc.) e métodos de acesso, como getters e setters. Aqui está um exemplo de como aplicar encapsulação a uma classe em Java:
public class Pessoa {
// Atributos privados
private String nome;
private int idade;
// Construtor
public Pessoa(String nome, int idade) {
this.nome = nome;
this.idade = idade;
}
// Método getter para o atributo nome
public String getNome() {
return nome;
}
// Método setter para o atributo nome
public void setNome(String nome) {
// Validação pode ser adicionada aqui, se necessário
this.nome = nome;
}
// Método getter para o atributo idade
public int getIdade() {
return idade;
}
// Método setter para o atributo idade
public void setIdade(int idade) {
// Validação pode ser adicionada aqui, se necessário
this.idade = idade;
}
// Método público para exibir informações da pessoa
public void exibirInformacoes() {
System.out.println("Nome: " + nome + ", Idade: " + idade);
}
}
Neste exemplo, a classe Pessoa encapsula os detalhes internos (nome e idade) usando os modificadores de acesso private. A interação externa com esses atributos é controlada através de métodos de acesso (getters e setters), permitindo que a classe defina e obtenha esses valores de forma segura. O uso de métodos setters também permite adicionar lógica de validação, se necessário.
Exemplo de uso:
public class ExemploEncapsulamento {
public static void main(String[] args) {
Pessoa pessoa = new Pessoa("Alice", 30);
// Usando getters para obter valores
System.out.println("Nome: " + pessoa.getNome());
System.out.println("Idade: " + pessoa.getIdade());
// Usando setters para modificar valores
pessoa.setNome("Bob");
pessoa.setIdade(25);
// Exibindo informações após a modificação
pessoa.exibirInformacoes();
}
}
Este exemplo demonstra como a classe Pessoa encapsula seus atributos internos e fornece uma interface controlada para interação externa. O encapsulamento ajuda a manter a integridade dos dados e facilita a manutenção do código ao reduzir o acoplamento entre diferentes partes do programa.