O encapsulamento é um princípio fundamental da programação orientada a objetos (OOP) em Java que envolve o agrupamento dos dados (variáveis) e dos métodos (funções) que operam nos dados em uma única unidade, conhecida como classe. Ele restringe o acesso direto a alguns dos componentes de um objeto e pode impedir a modificação acidental de dados.
Objetivo do encapsulamento
Ocultação de dados: O encapsulamento permite que a representação interna de um objeto fique oculta do lado de fora. Somente os detalhes necessários são expostos por meio de uma interface pública.
Maior flexibilidade: Ao controlar o acesso aos campos de uma classe, você pode alterar a implementação interna sem afetar o código externo que usa a classe.
Melhoria da capacidade de manutenção: O encapsulamento ajuda a manter o código, mantendo os campos privados e fornecendo métodos getter e setter públicos para modificar e visualizar os campos.
Implementação do encapsulamento em Java
Para obter o encapsulamento em Java:
Declare as variáveis de classe como private.
Forneça public métodos getter e setter para acessar e atualizar o valor de uma variável privada.
Exemplo 1: Encapsulamento básico
publicclassStudent{private String name;private int age;// Getter method for namepublic String getName(){return name;}// Setter method for namepublicvoidsetName(String name){this.name = name;}// Getter method for agepublic int getAge(){return age;}// Setter method for agepublicvoidsetAge(int age){if(age >0){this.age = age;}}}Tecnologia
Neste exemplo, a classe Student tem campos privados name e age. Os métodos públicos getter e setter são fornecidos para acessar e modificar esses campos. O setter para age inclui uma verificação de validação básica.
Exemplo 2: Encapsulamento com validação
publicclassBankAccount{private double balance;// Getter method for balancepublic double getBalance(){return balance;}// Setter method for balance with validationpublicvoiddeposit(double amount){if(amount >0){
balance += amount;}}publicvoidwithdraw(double amount){if(amount >0&& amount <= balance){
balance -= amount;}}}Tecnologia
A classe BankAccount encapsula o campo balance. Ele fornece os métodos deposit e withdraw para modificar o saldo, garantindo que somente operações válidas sejam realizadas.
Dicas e práticas recomendadas
Use campos privados: Sempre declare os campos de classe como private para protegê-los de modificações externas.
Fornecer métodos de acesso: Use os métodos getter e setter do site public para controlar o acesso aos campos. Isso permite a validação e a flexibilidade na alteração da implementação interna.
Lógica de validação: Implemente a lógica de validação nos métodos setter para garantir que o estado do objeto permaneça consistente.
Classes imutáveis: Considere a possibilidade de tornar as classes imutáveis (sem setters) se o estado do objeto não for alterado após a criação. Isso aumenta a segurança e simplifica a programação simultânea.
O encapsulamento é um princípio fundamental da programação orientada a objetos (OOP) em Java que envolve o agrupamento dos dados (variáveis) e dos métodos (funções) que operam nos dados em uma única unidade, conhecida como classe. Ele restringe o acesso direto a alguns dos componentes de um objeto e pode impedir a modificação acidental de dados.
Objetivo do encapsulamento
Implementação do encapsulamento em Java
Para obter o encapsulamento em Java:
private.publicmétodos getter e setter para acessar e atualizar o valor de uma variável privada.Exemplo 1: Encapsulamento básico
Neste exemplo, a classe
Studenttem campos privadosnameeage. Os métodos públicos getter e setter são fornecidos para acessar e modificar esses campos. O setter paraageinclui uma verificação de validação básica.Exemplo 2: Encapsulamento com validação
A classe
BankAccountencapsula o campobalance. Ele fornece os métodosdepositewithdrawpara modificar o saldo, garantindo que somente operações válidas sejam realizadas.Dicas e práticas recomendadas
privatepara protegê-los de modificações externas.publicpara controlar o acesso aos campos. Isso permite a validação e a flexibilidade na alteração da implementação interna.