Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Encapsulamento em Java: Guia Completo com Exemplo Prático

O que é Encapsulamento em Java?

Encapsulamento é um dos pilares centrais do design orientado a objetos em Java. Ele agrupa dados (campos) e as operações que manipulam esses dados (métodos) em uma única unidade autocontida — a classe. Ao esconder o estado interno atrás de uma interface bem definida, o encapsulamento protege objetos de interferência não intencional e torna o código mais fácil de manter e testar.

Neste tutorial você aprenderá:

Clique aqui se o vídeo não estiver acessível

Aprenda Encapsulamento com um Exemplo

Para ilustrar encapsulamento, considere uma classe simples de conta bancária que oferece funcionalidade de depósito e exibição de saldo.

class Conta {
    private int numeroConta;
    private int saldoConta;
    public void mostrarDados() {
        // código para exibir dados
    }
    public void depositar(int valor) {
        if (valor < 0) {
            // mostrar erro
        } else {
            saldoConta = saldoConta + valor;
        }
    }
}

Imagine um ator malicioso tem acesso ao código-fonte e tenta injetar um depósito negativo de -100. Existem dois vetores de ataque comuns:

Abordagem 1: Modificar diretamente o campo saldoConta. Como o campo é declarado private, ele é inacessível de fora da classe Conta, prevenindo este ataque.

Encapsulamento em Java: Guia Completo com Exemplo Prático

Como você pode ver, o modificador private reforça encapsulamento e protege o estado interno.

Encapsulamento em Java: Guia Completo com Exemplo Prático

Portanto, o hacker não pode adulterar o saldo diretamente.

Encapsulamento em Java: Guia Completo com Exemplo Prático

Abordagem 2: Usar o método público depositar para adicionar valor negativo. O método contém uma validação que rejeita qualquer valor menor que zero, frustrando esta tentativa também.

Encapsulamento em Java: Guia Completo com Exemplo Prático

Assim, encapsulamento garante que apenas operações legítimas possam modificar o estado do objeto.

Encapsulamento em Java: Guia Completo com Exemplo Prático

A classe inteira se comporta como uma cápsula selada — dados são escondidos, e interação ocorre exclusivamente através de mensagens bem definidas. Esta é a essência do encapsulamento.

Encapsulamento em Java: Guia Completo com Exemplo Prático

Ocultação de Dados em Java

Ocultação de dados é a prática de restringir acesso direto aos campos de um objeto de fora de sua classe definidora. Em Java, a palavra-chave private reforça esta restrição, tornando o campo invisível para todas as outras classes. Isso mantém a representação interna opaca, permitindo que desenvolvedores a modifiquem sem quebrar código dependente.

Às vezes, um nível de acesso menos restritivo, como protected ou public, é necessário para herança ou classes utilitárias. No entanto, encapsulamento encoraja usar campos private acoplados com métodos acessores controlados.

Métodos Getter e Setter em Java

Getters (acessadores) e setters (mutadores) fornecem interface controlada para leitura e atualização de campos privados. Eles permitem validação, logging ou inicialização preguiçosa enquanto preservam encapsulamento.

Exemplo:

class Conta {
    private int numeroConta;
    private int saldoConta;
    // acessor
    public int getSaldo() {
        return this.saldoConta;
    }
    // mutador
    public void setNumero(int num) {
        this.numeroConta = num;
    }
}

Aqui, getSaldo() retorna o saldo atual, enquanto setNumero() atribui um novo número de conta.

Abstração vs. Encapsulamento

Embora relacionados, abstração e encapsulamento servem propósitos distintos:

Pense em um smartphone: a circuitaria complexa é encapsulada atrás de uma interface touch, enquanto abstração fornece funções de alto nível como discar ou enviar mensagens.

Vantagens do Encapsulamento em Java

Java

  1. Dominando Encapsulamento em Java: Guia Prático de Ocultação de Dados
  2. Dominando Type Casting em Java: De Widening a Narrowing e Além
  3. Método Java String length(): Como Obter o Tamanho de uma String (Exemplo)
  4. Entendendo Java String.charAt(): Sintaxe, Tipo de Retorno, Exceções e Exemplo Prático
  5. Método Java String.contains(): Como Verificar Substrings – Exemplos Práticos
  6. Dominando Java String.endsWith(): Como Verificar Sufixos de String com Exemplos
  7. Lendo Arquivos em Java com BufferedReader – Guia Prático com Exemplos
  8. Algoritmo Insertion Sort em Java: Exemplo Claro e Guia Passo a Passo
  9. Selection Sort em Java: Exemplo Passo a Passo e Código Completo
  10. Encapsulamento em Java Explicado: Ocultação Segura de Dados e Controle