🧰 Encapsulamento no Motor: Nem Tudo Precisa Estar no Painel
No artigo anterior, usamos a estrutura de um carro para entender os conceitos de classe e objeto. Agora, vamos mergulhar em um dos pilares da Programação Orientada a Objetos (OOP): o encapsulamento.
Mas o que significa isso, afinal?
📦 O que é Encapsulamento?
Vamos começar pelo significado da palavra.
Encapsulamento vem de “encapsular”, que por sua vez deriva do latim capsula, diminutivo de capsa, que significa "caixa" ou "invólucro". No mundo da programação, encapsular significa colocar algo dentro de uma "cápsula" — protegê-lo do acesso direto.
Traduzindo: você esconde os detalhes internos do funcionamento de um objeto e oferece apenas o necessário para quem for usá-lo.
🔧 Motor: Um bom exemplo de encapsulamento
Vamos olhar para o motor de um carro. Ele é uma peça complexa, cheia de sensores, engrenagens, válvulas e circuitos eletrônicos.
O motorista não precisa (e nem deve) mexer diretamente nesses componentes internos. Tudo o que ele precisa é girar a chave (ou apertar um botão) para ligar o carro, e pressionar o acelerador para andar.
Isso é encapsulamento.
Você esconde os detalhes internos e expõe uma interface simples.
Exemplo em código Delphi:
type
TMotor = class
private
FTemperaturaInterna: Double;
function CalcularMisturaCombustivel: Double;
procedure InjetarCombustivel;
public
procedure Ligar;
procedure Acelerar;
function GetRPM: Integer;
end;FTemperaturaInterna,CalcularMisturaCombustiveleInjetarCombustivelsão privados – fazem parte da "engrenagem interna".Ligar,AcelerareGetRPMsão públicos – são os comandos que o “motorista” pode usar.
👁️ Visibilidade: pública, privada, protegida...
Encapsulamento está diretamente ligado ao conceito de visibilidade:
| Tipo | Quem pode acessar |
|---|---|
private | Apenas a própria classe |
protected | A própria classe e suas descendentes |
public | Qualquer outro objeto |
published | Como public, mas com suporte a RTTI (Delphi) |
Assim como em um carro, onde você não precisa ver os pistões funcionando, no código, você não precisa que tudo seja público. Expor só o necessário deixa o sistema mais seguro e mais fácil de manter.
🔒 Encapsular é proteger
Além de esconder complexidade, o encapsulamento:
- Evita que outros objetos mexam em coisas que não deveriam.
- Reduz erros, porque você controla os pontos de entrada e saída.
- Permite mudar a parte interna da classe sem quebrar o restante do código.
🧠 Conclusão
O encapsulamento nos ensina uma lição importante: nem tudo precisa ser visível, e nem tudo precisa ser acessível. Assim como um motorista não precisa ajustar válvulas manualmente, seu código também deve proteger os detalhes internos e oferecer apenas uma interface clara e segura para o mundo externo.
No próximo artigo, vamos falar sobre herança: como criar diferentes tipos de carro a partir da mesma classe Carro, e por que isso ajuda a reutilizar código e manter a organização.