12.3. Encapsulamento e métodos acessores (getters e setters): Modificadores de acesso: private, protected, public

Página 77

12.3. Encapsulamento e Métodos Acessores (Getters e Setters)

O encapsulamento é um dos quatro princípios fundamentais da programação orientada a objetos (POO), ao lado da herança, polimorfismo e abstração. Ele é essencial para a criação de software seguro, confiável e fácil de manter. O encapsulamento em Java é implementado através do uso de modificadores de acesso e métodos acessores, conhecidos como getters e setters.

Modificadores de Acesso: private, protected, public

Os modificadores de acesso em Java definem a visibilidade de uma classe, método ou variável em relação a outras partes do código. Existem três principais modificadores de acesso:

  • private: O membro é acessível apenas dentro da própria classe. É o nível de acesso mais restritivo e é usado para ocultar os detalhes de implementação e manter a integridade dos dados.
  • protected: O membro é acessível dentro da própria classe, em subclasses (mesmo que estejam em pacotes diferentes) e em outras classes do mesmo pacote. É menos restritivo que o private e é comumente usado em situações onde há herança.
  • public: O membro é acessível de qualquer outra classe, independentemente do pacote em que se encontram. É o nível de acesso menos restritivo e deve ser usado com cautela, pois expõe os membros para o mundo externo.

Encapsulamento na Prática

O encapsulamento é a prática de ocultar os detalhes internos de implementação de uma classe e expor apenas os métodos necessários para o uso dessa classe. Isso é feito para evitar o acesso direto aos campos (também conhecidos como variáveis de instância) de uma classe, o que poderia resultar em estados inconsistentes ou indesejados. Em vez disso, os campos são marcados como private e o acesso a eles é feito por meio de métodos públicos, os getters e setters.

Getters e Setters

Getters e setters são métodos públicos que permitem a leitura (get) e a modificação (set) de campos privados de uma classe. Eles são a porta de entrada e saída para os dados encapsulados. A convenção em Java é nomear esses métodos como getNomeDoCampo para getters e setNomeDoCampo para setters, onde NomeDoCampo começa com uma letra maiúscula e corresponde ao nome do campo privado.

Exemplo de Encapsulamento com Getters e Setters


public class Pessoa {
    private String nome;
    private int idade;

    // Getter para o campo nome
    public String getNome() {
        return nome;
    }

    // Setter para o campo nome
    public void setNome(String nome) {
        this.nome = nome;
    }

    // Getter para o campo idade
    public int getIdade() {
        return idade;
    }

    // Setter para o campo idade
    public void setIdade(int idade) {
        if (idade > 0) {
            this.idade = idade;
        } else {
            throw new IllegalArgumentException("Idade deve ser maior que zero.");
        }
    }
}

Neste exemplo, a classe Pessoa tem dois campos privados: nome e idade. Os métodos getters e setters correspondentes permitem o acesso controlado a esses campos. Observe que no setter setIdade, há uma verificação para garantir que a idade não seja negativa, o que é um exemplo de como o encapsulamento ajuda a manter a integridade dos dados.

Vantagens do Encapsulamento

O encapsulamento oferece várias vantagens, incluindo:

  • Controle de acesso: Os desenvolvedores podem controlar quem tem acesso às variáveis de instância de uma classe.
  • Flexibilidade e manutenção: A implementação interna de uma classe pode ser alterada sem afetar as classes que a utilizam, desde que os métodos acessores permaneçam os mesmos.
  • Aumento da segurança: Ao evitar o acesso direto aos campos, é possível prevenir estados inconsistentes e proteger os dados contra manipulações indesejadas.

Conclusão

Encapsulamento é um conceito fundamental na programação orientada a objetos que ajuda a proteger os dados e a manter o código organizado e seguro. Os modificadores de acesso private, protected e public são ferramentas poderosas para controlar a visibilidade dos membros de uma classe. Getters e setters são os métodos que permitem interagir com esses membros de maneira controlada, respeitando as regras de negócio e mantendo a integridade dos dados. Ao entender e aplicar corretamente o encapsulamento, os programadores podem criar sistemas robustos e fáceis de manter.

Now answer the exercise about the content:

Qual dos seguintes afirmativas sobre encapsulamento em Java é correta?

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

7812.4. Encapsulamento e métodos acessores (getters e setters): Definição de métodos acessores (getters)

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text