Encapsulamento

Definição

Encapsulamento é um princípio da programação orientada a objetos que consiste em ocultar os detalhes internos de uma classe, expondo apenas o necessário por meio de interfaces públicas — como métodos ou propriedades.

O objetivo é proteger o estado interno do objeto e garantir que ele só seja acessado ou modificado de forma controlada.

Objetivo e benefícios

O encapsulamento contribui para um código mais seguro, modular e de fácil manutenção. Ao restringir o acesso direto aos atributos, evita-se alterações indevidas e reduz-se o acoplamento entre partes do sistema.

Além disso, ele favorece a separação de responsabilidades e torna o comportamento das classes mais previsível e controlado.

Como aplicar / Mecanismos de suporte

Linguagens como Java, C#, C++, TypeScript oferecem modificadores de acesso como private, protected e public. Já em linguagens como Python e Ruby, o encapsulamento é baseado em convenções de nomenclatura, como prefixos _ ou __ para indicar atributos não acessíveis diretamente.

Exemplo em código (Python)

class Conta:
    def __init__(self, saldo):
        self.__saldo = saldo  # atributo privado

    def depositar(self, valor):
        if valor > 0:
            self.__saldo += valor

    def obter_saldo(self):
        return self.__saldo

c = Conta(100)
c.depositar(50)
print(c.obter_saldo())  # 150

No exemplo acima, o atributo __saldo é encapsulado: ele não pode ser acessado diretamente de fora da classe. Toda modificação e leitura são feitas por métodos que controlam a lógica de acesso.

Riscos ou mau uso comum

Expor atributos diretamente (por exemplo, conta.saldo = ...) quebra o encapsulamento e aumenta o risco de inconsistências. Outro erro comum é concentrar muita responsabilidade em uma única classe — mesmo que os atributos estejam protegidos, a coesão do código pode estar comprometida.

Relacionados

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com