image

Access unlimited bootcamps and 650+ courses

50
%OFF
Article image
Marcos Silva
Marcos Silva01/08/2025 23:22
Share
Suzano - Python Developer #2Recommended for youSuzano - Python Developer #2

🧠 Java e a Arte da Abstração com Classes e Encapsulamento

    Em um mundo onde sistemas se tornam cada vez mais complexos, abstração é uma das ferramentas mais poderosas do programador. No universo Java, a abstração ganha forma através de classes, encapsulamento e palavras-chave como final e record, que ajudam a criar códigos mais seguros, organizados e fÔceis de manter.

    Neste artigo, vamos explorar como essas funcionalidades funcionam e como aplicƔ-las corretamente na prƔtica.

    šŸ” O que Ć© Abstração?

    Abstração é o processo de esconder os detalhes de implementação e mostrar apenas o que é essencial. Em Java, isso geralmente é feito por meio de classes que representam entidades do mundo real com atributos e métodos.

    Por exemplo:

    java
    CopiarEditar
    public class Pessoa {
      private String nome;
      private int idade;
    
      public void falar() {
          System.out.println("OlĆ”, meu nome Ć© " + nome);
      }
    
      // getters e setters omitidos para clareza
    }
    

    VocĆŖ nĆ£o precisa saber como falar() Ć© implementado, apenas que a pessoa pode ā€œfalarā€.

    🧱 Encapsulamento: Protegendo os Dados

    Encapsulamento é o princípio de esconder os atributos internos de uma classe e controlÔ-los por meio de métodos públicos (getters e setters).

    Por que usar?

    • SeguranƧa: impede acesso direto aos dados.
    • Flexibilidade: permite alterar a lógica interna sem afetar o restante do sistema.
    • Validação: vocĆŖ pode validar os dados antes de atribuĆ­-los.

    Exemplo:

    java
    CopiarEditar
    public class ContaBancaria {
      private double saldo;
    
      public double getSaldo() {
          return saldo;
      }
    
      public void depositar(double valor) {
          if (valor > 0) {
              saldo += valor;
          }
      }
    }
    

    šŸ A Palavra-chave final

    Qual é a função da final?

    A keyword final pode ser aplicada em:

    1. VariÔveis: o valor não pode mais ser alterado após a atribuição.
    2. Métodos: não podem ser sobrescritos por subclasses.
    3. Classes: não podem ser estendidas (herdadas).

    Exemplos:

    java
    CopiarEditar
    final int x = 10;
    // x = 20; // Erro de compilação
    
    public final class Animal {} // NĆ£o pode ser herdada
    
    public final void respirar() {} // NĆ£o pode ser sobrescrito
    

    No caso de variÔveis do tipo objeto (ex: final Pessoa p = new Pessoa()), o que não pode ser alterado é a referência. As propriedades internas ainda podem ser modificadas, desde que não sejam final também.

    🧊 Imutabilidade com record

    O que Ć© record em Java?

    record é um tipo especial de classe imutÔvel introduzido no Java 14 (preview) e oficializado no Java 16. Ele é usado para representar estruturas de dados simples com menos código.

    Exemplo:

    java
    CopiarEditar
    public record Usuario(String nome, int idade) {}
    

    Isso equivale a:

    • Atributos final
    • Getters automĆ”ticos
    • Construtor com todos os argumentos
    • ImplementaƧƵes de equals, hashCode e toString

    Ou seja, uma vez criado:

    java
    CopiarEditar
    Usuario u = new Usuario("João", 30);
    // u.nome = "Maria"; // NĆ£o Ć© possĆ­vel!
    

    šŸ¤” Respondendo Ć s QuestƵes

    1. Posso alterar as propriedades de um objeto final?

    Sim, desde que as propriedades não sejam final. final impede que você troque a referência do objeto, mas não o conteúdo interno (a não ser que o conteúdo também seja final ou imutÔvel).

    java
    CopiarEditar
    final Pessoa p = new Pessoa();
    p.setNome("João"); // VÔlido
    // p = new Pessoa(); // Erro
    

    2. O que Ć© um record?

    • Uma classe imutĆ”vel
    • Construtor com argumentos
    • Getters implĆ­citos
    • NĆ£o permite alteração após criação

    3. O que a keyword final realmente faz?

    • Torna valores imutĆ”veis após a primeira atribuição
    • Pode ser usada em variĆ”veis, mĆ©todos e classes
    • Ajuda a evitar erros e garantir integridade dos dados

    šŸŽÆ ConclusĆ£o

    A arte da abstração em Java vai muito além de criar classes: envolve também proteger os dados (encapsulamento), criar contratos seguros e usar ferramentas modernas como final e record para reforçar a imutabilidade e a integridade do sistema.

    Dominar esses conceitos é essencial para escrever código mais limpo, confiÔvel e profissional.

    šŸš€ Próximos Passos

    • RefaƧa uma classe antiga sua usando record e compare.
    • Experimente usar final em todos os atributos e veja onde realmente precisa mutabilidade.
    • Refatore mĆ©todos para garantir encapsulamento correto.

    Tem dúvidas ou quer compartilhar sua experiência? Deixe um comentÔrio na comunidade da DIO!

    Share
    Recommended for you
    Suzano - Python Developer #2
    Riachuelo - Primeiros Passos com Java
    GFT Start #7 .NET
    Comments (0)
    Recommended for youSuzano - Python Developer #2